Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vfuPz-005yXq-20 for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Jan 2026 06:31:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vfuPy-008G0e-2H for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Jan 2026 06:31:46 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vfuPy-008G0W-0v for pgsql-hackers@lists.postgresql.org; Wed, 14 Jan 2026 06:31:46 +0000 Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vfuPv-000KVx-0k for pgsql-hackers@postgresql.org; Wed, 14 Jan 2026 06:31:45 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id 4C16B4B4E66 for ; Wed, 14 Jan 2026 07:31:41 +0100 (CET) Received: from s980.loopia.se (unknown [172.22.191.5]) by s807.loopia.se (Postfix) with ESMTP id 3DB874B6194; Wed, 14 Jan 2026 07:31:41 +0100 (CET) Received: from localhost (unknown [172.22.191.6]) by s980.loopia.se (Postfix) with ESMTP id 3BD282201696; Wed, 14 Jan 2026 07:31:41 +0100 (CET) X-Virus-Scanned: amavis at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.2 X-Spam-Level: X-Spam-Status: No, score=-1.2 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1] autolearn=disabled Authentication-Results: s472.loopia.se (amavis); dkim=pass (2048-bit key) header.d=proxel.se Received: from s979.loopia.se ([172.22.191.6]) by localhost (s472.loopia.se [172.22.190.12]) (amavis, port 10024) with LMTP id CEIxhUa_DWo5; Wed, 14 Jan 2026 07:31:40 +0100 (CET) X-Loopia-Auth: user X-Loopia-User: andreas@proxel.se X-Loopia-Originating-IP: 147.28.75.140 Received: from [192.168.0.121] (customer-147-28-75-140.stosn.net [147.28.75.140]) (Authenticated sender: andreas@proxel.se) by s979.loopia.se (Postfix) with ESMTPSA id 62A8410BC47D; Wed, 14 Jan 2026 07:31:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1768372300; bh=rJhuYvTJW4yUHZGA6Ap98OVBMPyP3olkZJTUIbSVce4=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=j3LIDwrSVNCXULgjVMBI+gdhySTklz2FGI0Bg5xERSzurAK3ZKPIueNh02T2wrG4E 3sSa96WchAbsehs94sJhm08lTO+Z5aK8pn5S+9wxRngHTEzyOmGu8smsS5HS4e4Khd 31AhJ/9kSnoJIuwFIjxQO603LJZEQs5JV4nLrpcP6HeM+mHsIWtA1ZxrNwra7Km5wm lt/rUCDK523Z24j7wdD6etR6H3zqdZ133DQCEhOkfjob/Tvi+1TRaF4XEhZAmnWucP RcHOF/Kal0GTnNjMFZ+pgFhnQvPQnjKO+6BkjZ1OftEV2VMXwvVCbmZja4y5ARwQbp 2lycC9ABgh4eA== Content-Type: multipart/mixed; boundary="------------Bx7C6GHwaKVq0gYiugexgpPo" Message-ID: <375e47d7-0423-4537-b5d5-72ecc0549535@proxel.se> Date: Wed, 14 Jan 2026 07:31:40 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Remove header lock BufferGetLSNAtomic() on architectures with 64 bit atomic operations To: Andres Freund Cc: pgsql-hackers References: <4e3gzrvqdrgw2sds3bnqylgbuq63j3ebtcgxomogkia4sqmhir@xmpndr5ufjmq> From: Andreas Karlsson Content-Language: en-US In-Reply-To: <4e3gzrvqdrgw2sds3bnqylgbuq63j3ebtcgxomogkia4sqmhir@xmpndr5ufjmq> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Bx7C6GHwaKVq0gYiugexgpPo Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 1/2/26 4:27 PM, Andres Freund wrote: > A volatile on a non-pointer won't do you much good, I'm afraid. You need to > make sure that the underlying value is read as a single 8 byte read, I don't > see how this guarantees that, unfortunately. Yeah, that was a quite big thinko. I have a attached a patch with the thinko fixed but I am still not happy with it. I think I will try to use atomics.h and see if that makes the code nicer to read. Also will after that see what I can do about pageinspect. Andreas --------------Bx7C6GHwaKVq0gYiugexgpPo Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Do-not-lock-in-BufferGetLSNAtomic-on-archs-with-8.patch" Content-Disposition: attachment; filename*0="v2-0001-Do-not-lock-in-BufferGetLSNAtomic-on-archs-with-8.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4MGZmNmVmMzc0NDAzNGU4YzM0YWExY2QxYzJkZmI5Y2NhMDEzOTA1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogRnJpLCAyMSBOb3YgMjAyNSAxMDoxNTowNiArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjJdIERvIG5vdCBsb2NrIGluIEJ1ZmZlckdldExTTkF0b21pYygpIG9uIGFyY2hz IHdpdGggOCBieXRlCiBhdG9taWMgcmVhZHMKCk9uIHBsYXRmb3JtcyB3aGVyZSB3ZSBjYW4g cmVhZCBvciB3cml0ZSB0aGUgd2hvbGUgTFNOIHRvIGEgYnVmZmVyIHBhZ2UKd2UgZG8gbm90 IG5lZWQgdG8gbG9jayB0aGUgYnVmZmVyIGhlYWRlciB0byBiZSBzdXJlIHdlIGRvIG5vdCBn ZXQgYSB0b3JuCkxTTi4gVG8gYWhjaWV2ZSB0aGlzIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdl IGFsd2F5cyByZWFkIGFuZCB3cml0ZSB0aGUKd2hpbGUgTFNOIGFuZCBkbyBub3Qgd3JpdGUg aXQgZmllbGQgYnkgZmllbGQuCgpXaGlsZSB3b3JraW5nIG9uIHRoaXMgSSBjb252ZXJ0ZWQg UGFnZVhMb2dSZWNQdHIgZnJvbSBhIHN0cnVjdCB3aXRoIHR3bwp1aW50MzIgZmllbGRzIGlu dG8gYW4gdWludDY0IHRvIG1ha2UgdGhlIGludGVudCBtb3JlIGNsZWFyLgoKSWRlYSBieSBB bmRyZXMgRnJldW5kLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYnVmbWFzay5j IHwgIDIgKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jIHwgMTIgKysr KysrLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmggICAgICAgICAgIHwgIDQgKy0tCiBz cmMvaW5jbHVkZS9zdG9yYWdlL2J1ZnBhZ2UuaCAgICAgICB8IDQ2ICsrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDE4 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v YnVmbWFzay5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKaW5kZXgg MWE5ZTdiZWE1ZDIuLjhhNjdiZmExYWZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL2J1Zm1hc2suYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1 Zm1hc2suYwpAQCAtMzIsNyArMzIsNyBAQCBtYXNrX3BhZ2VfbHNuX2FuZF9jaGVja3N1bShQ YWdlIHBhZ2UpCiB7CiAJUGFnZUhlYWRlcglwaGRyID0gKFBhZ2VIZWFkZXIpIHBhZ2U7CiAK LQlQYWdlWExvZ1JlY1B0clNldChwaGRyLT5wZF9sc24sICh1aW50NjQpIE1BU0tfTUFSS0VS KTsKKwlQYWdlWExvZ1JlY1B0clNldCgmcGhkci0+cGRfbHNuLCAodWludDY0KSBNQVNLX01B UktFUik7CiAJcGhkci0+cGRfY2hlY2tzdW0gPSBNQVNLX01BUktFUjsKIH0KIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgYi9zcmMvYmFja2Vu ZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYwppbmRleCBlYTVjYjMwZmVkMC4uNThkZTg5NmZh N2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCisr KyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCkBAIC00NTg2LDEzICs0 NTg2LDE4IEBAIEJ1ZmZlcklzUGVybWFuZW50KEJ1ZmZlciBidWZmZXIpCiAKIC8qCiAgKiBC dWZmZXJHZXRMU05BdG9taWMKLSAqCQlSZXRyaWV2ZXMgdGhlIExTTiBvZiB0aGUgYnVmZmVy IGF0b21pY2FsbHkgdXNpbmcgYSBidWZmZXIgaGVhZGVyIGxvY2suCi0gKgkJVGhpcyBpcyBu ZWNlc3NhcnkgZm9yIHNvbWUgY2FsbGVycyB3aG8gbWF5IG5vdCBoYXZlIGFuIGV4Y2x1c2l2 ZSBsb2NrCi0gKgkJb24gdGhlIGJ1ZmZlci4KKyAqCQlSZXRyaWV2ZXMgdGhlIExTTiBvZiB0 aGUgYnVmZmVyIGF0b21pY2FsbHkuCisgKgorICoJCU9uIHBsYXRmb3JtcyB3aXRob3V0IDgg Ynl0ZSBhdG9taWMgcmVhZHMvd3JpdGUgd2UgbmVlZCB0byB0YWtlIGEKKyAqCQloZWFkZXIg bG9jay4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHNvbWUgY2FsbGVycyB3aG8gbWF5IG5vdCBo YXZlIGFuCisgKgkJZXhjbHVzaXZlIGxvY2sgb24gdGhlIGJ1ZmZlci4KICAqLwogWExvZ1Jl Y1B0cgogQnVmZmVyR2V0TFNOQXRvbWljKEJ1ZmZlciBidWZmZXIpCiB7CisjaWZkZWYgUEdf SEFWRV84QllURV9TSU5HTEVfQ09QWV9BVE9NSUNJVFkKKwlyZXR1cm4gUGFnZUdldExTTihC dWZmZXJHZXRQYWdlKGJ1ZmZlcikpOworI2Vsc2UKIAljaGFyCSAgICpwYWdlID0gQnVmZmVy R2V0UGFnZShidWZmZXIpOwogCUJ1ZmZlckRlc2MgKmJ1ZkhkcjsKIAlYTG9nUmVjUHRyCWxz bjsKQEAgLTQ2MTMsNiArNDYxOCw3IEBAIEJ1ZmZlckdldExTTkF0b21pYyhCdWZmZXIgYnVm ZmVyKQogCVVubG9ja0J1ZkhkcihidWZIZHIpOwogCiAJcmV0dXJuIGxzbjsKKyNlbmRpZgog fQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9naXN0LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oCmluZGV4IDhmYTMwMTI2Zjhm Li45YjM4NWIxM2E4OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oCkBAIC0xODYsOCArMTg2LDggQEAgdHlw ZWRlZiBzdHJ1Y3QgR0lTVEVOVFJZCiAjZGVmaW5lIEdpc3RNYXJrRm9sbG93UmlnaHQocGFn ZSkgKCBHaXN0UGFnZUdldE9wYXF1ZShwYWdlKS0+ZmxhZ3MgfD0gRl9GT0xMT1dfUklHSFQp CiAjZGVmaW5lIEdpc3RDbGVhckZvbGxvd1JpZ2h0KHBhZ2UpCSggR2lzdFBhZ2VHZXRPcGFx dWUocGFnZSktPmZsYWdzICY9IH5GX0ZPTExPV19SSUdIVCkKIAotI2RlZmluZSBHaXN0UGFn ZUdldE5TTihwYWdlKSAoIFBhZ2VYTG9nUmVjUHRyR2V0KEdpc3RQYWdlR2V0T3BhcXVlKHBh Z2UpLT5uc24pKQotI2RlZmluZSBHaXN0UGFnZVNldE5TTihwYWdlLCB2YWwpICggUGFnZVhM b2dSZWNQdHJTZXQoR2lzdFBhZ2VHZXRPcGFxdWUocGFnZSktPm5zbiwgdmFsKSkKKyNkZWZp bmUgR2lzdFBhZ2VHZXROU04ocGFnZSkgKCBQYWdlWExvZ1JlY1B0ckdldCgmR2lzdFBhZ2VH ZXRPcGFxdWUocGFnZSktPm5zbikpCisjZGVmaW5lIEdpc3RQYWdlU2V0TlNOKHBhZ2UsIHZh bCkgKCBQYWdlWExvZ1JlY1B0clNldCgmR2lzdFBhZ2VHZXRPcGFxdWUocGFnZSktPm5zbiwg dmFsKSkKIAogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9idWZwYWdl LmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2J1ZnBhZ2UuaAppbmRleCA1Mjk4OWU1ZTUzNS4u ZDUyZmVmZDRhYTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvYnVmcGFnZS5o CisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvYnVmcGFnZS5oCkBAIC05MSwyMyArOTEsNDUg QEAgdHlwZWRlZiB1aW50MTYgTG9jYXRpb25JbmRleDsKIAogCiAvKgotICogRm9yIGhpc3Rv cmljYWwgcmVhc29ucywgdGhlIDY0LWJpdCBMU04gdmFsdWUgaXMgc3RvcmVkIGFzIHR3byAz Mi1iaXQKLSAqIHZhbHVlcy4KKyAqIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIHRoZSBzdG9y YWdlIG9mIDY0LWJpdCBMU04gdmFsdWVzIGRlcGVuZHMgb24gdGhlCisgKiBlbmRpYW5lc3Mg YmVjYXVzZSB0aGUgZmllbGQgdXNlZCB0byBiZSBzdG9yZWQgYXMgdHdvIDMyLWJpdCB2YWx1 ZXMuIFdoZW4KKyAqIHJlYWRpbmcgYW5kIHdyaXRpbmcgdGhlIExTTiB3ZSBuZWVkIHRvIGNv bnZlcnQgYmV0d2VlbiB0aGUgdHdvIGZvcm1hdHMuCisgKgorICogV2UgYXJlIGNhcmVmdWwg dG8gdHJ5IHRvIHRyZWF0IHRoZSBMU04gYXMgYSBzaW5nbGUgdWludDY0IHNvIGNhbGxlcnMg bGlrZQorICogQnVmZmVyR2V0TFNOQXRvbWljKCkgY2FuIGJlIHN1cmUgdGhlcmUgYXJlIG5v IHRvcm4gcmVhZHMgb3Igd3JpdGVzLgogICovCi10eXBlZGVmIHN0cnVjdAordHlwZWRlZiB1 aW50NjQgUGFnZVhMb2dSZWNQdHI7CisKKyNpZmRlZiBXT1JEU19CSUdFTkRJQU4KKworc3Rh dGljIGlubGluZSBYTG9nUmVjUHRyCitQYWdlWExvZ1JlY1B0ckdldChjb25zdCBQYWdlWExv Z1JlY1B0ciAqdmFsKQoreworCXJldHVybiAqdmFsOworfQorCitzdGF0aWMgaW5saW5lIHZv aWQKK1BhZ2VYTG9nUmVjUHRyU2V0KFBhZ2VYTG9nUmVjUHRyICpwdHIsIFhMb2dSZWNQdHIg bHNuKQogewotCXVpbnQzMgkJeGxvZ2lkOwkJCS8qIGhpZ2ggYml0cyAqLwotCXVpbnQzMgkJ eHJlY29mZjsJCS8qIGxvdyBiaXRzICovCi19IFBhZ2VYTG9nUmVjUHRyOworCSpwdHIgPSBs c247Cit9CisKKyNlbHNlCiAKIHN0YXRpYyBpbmxpbmUgWExvZ1JlY1B0cgotUGFnZVhMb2dS ZWNQdHJHZXQoUGFnZVhMb2dSZWNQdHIgdmFsKQorUGFnZVhMb2dSZWNQdHJHZXQoY29uc3Qg dm9sYXRpbGUgUGFnZVhMb2dSZWNQdHIgKnZhbCkKK3sKKwlQYWdlWExvZ1JlY1B0ciB0bXAg PSAqdmFsOworCXJldHVybiAodG1wIDw8IDMyKSB8ICh0bXAgPj4gMzIpOworfQorCitzdGF0 aWMgaW5saW5lIHZvaWQKK1BhZ2VYTG9nUmVjUHRyU2V0KHZvbGF0aWxlIFBhZ2VYTG9nUmVj UHRyICpwdHIsIFhMb2dSZWNQdHIgbHNuKQogewotCXJldHVybiAodWludDY0KSB2YWwueGxv Z2lkIDw8IDMyIHwgdmFsLnhyZWNvZmY7CisJKnB0ciA9IChsc24gPDwgMzIpIHwgKGxzbiA+ PiAzMik7CiB9CiAKLSNkZWZpbmUgUGFnZVhMb2dSZWNQdHJTZXQocHRyLCBsc24pIFwKLQko KHB0cikueGxvZ2lkID0gKHVpbnQzMikgKChsc24pID4+IDMyKSwgKHB0cikueHJlY29mZiA9 ICh1aW50MzIpIChsc24pKQorI2VuZGlmCiAKIC8qCiAgKiBkaXNrIHBhZ2Ugb3JnYW5pemF0 aW9uCkBAIC0zODUsMTIgKzQwNywxMiBAQCBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKGNvbnN0 IFBhZ2VEYXRhICpwYWdlKQogc3RhdGljIGlubGluZSBYTG9nUmVjUHRyCiBQYWdlR2V0TFNO KGNvbnN0IFBhZ2VEYXRhICpwYWdlKQogewotCXJldHVybiBQYWdlWExvZ1JlY1B0ckdldCgo KGNvbnN0IFBhZ2VIZWFkZXJEYXRhICopIHBhZ2UpLT5wZF9sc24pOworCXJldHVybiBQYWdl WExvZ1JlY1B0ckdldCgmKChjb25zdCBQYWdlSGVhZGVyRGF0YSAqKSBwYWdlKS0+cGRfbHNu KTsKIH0KIHN0YXRpYyBpbmxpbmUgdm9pZAogUGFnZVNldExTTihQYWdlIHBhZ2UsIFhMb2dS ZWNQdHIgbHNuKQogewotCVBhZ2VYTG9nUmVjUHRyU2V0KCgoUGFnZUhlYWRlcikgcGFnZSkt PnBkX2xzbiwgbHNuKTsKKwlQYWdlWExvZ1JlY1B0clNldCgmKChQYWdlSGVhZGVyKSBwYWdl KS0+cGRfbHNuLCBsc24pOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wKLS0gCjIuNDcuMwoK --------------Bx7C6GHwaKVq0gYiugexgpPo--