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 1vNBvg-00DWqA-0J for pgsql-hackers@arkaria.postgresql.org; Sun, 23 Nov 2025 15:23:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vNBve-00EuSm-2M for pgsql-hackers@arkaria.postgresql.org; Sun, 23 Nov 2025 15:23:07 +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 1vNBve-00EuSd-0w for pgsql-hackers@lists.postgresql.org; Sun, 23 Nov 2025 15:23:06 +0000 Received: from fhigh-b4-smtp.messagingengine.com ([202.12.124.155]) by makus.postgresql.org with smtp (Exim 4.96) (envelope-from ) id 1vNBvb-0013iI-2N for pgsql-hackers@lists.postgresql.org; Sun, 23 Nov 2025 15:23:05 +0000 Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43]) by mailfhigh.stl.internal (Postfix) with ESMTP id E6C7B7A0158 for ; Sun, 23 Nov 2025 10:23:03 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Sun, 23 Nov 2025 10:23:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=burd.me; h=cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to :reply-to:subject:subject:to:to; s=fm1; t=1763911383; x= 1763997783; bh=pZ1151IVAdYwdhChyGqxwI3tXdg3hPROSB2L8allRmE=; b=H KZcUuPZaNA8EG1uf5OA8rl6Jy1W7I/5qq+fWi9xp3qw3dmNoqHhVg6m6QswYaJn3 V1jd552MXo1d6VYJuhRDfQR3DBozbHBsG69YUzkPf6iezXFbLZ3Ox7GUUqikzM1a RbnX8mWKWUJAHB+3VvAj0U2Uq3RtzfoYKM/MG0MNMGlCjeqx4mll9IFMbIHY3CsY nDF89C7GEtTTV3RIJD3//XxlbFSpUtH+9tM7goM9+EQUzDdHVk6aFUOmHy9Gv8mf gA+Qx0XkfxuVGXzVXuIV52Ob61OR57+D/VJ2P4D5ij5UBwgRqlD7G/RtSmv+JbKh l/KBvTuZbSHLsn96St3fQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:reply-to:subject :subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1763911383; x=1763997783; bh=pZ1151IVAdYwdhChyGqxwI3tXdg3 hPROSB2L8allRmE=; b=f96RMLwD1tLnzDUVWkqsJN6+enYwk3EElp6gEQiaTXl/ xkAYDTsgqDUNT33fmoQYtz0of6XlxGbxvDDMO7NhHyZxTgadpGGrOCSSEEnsQPSh JVpc4GT7lW1KnJzQS7/VZWGKua8NXxQJ0ekA/JTuECLBIHeFaxhEcZo/UQg6zNcI zWOIfeQAyUDrNa5+se7VwMHFPpN6E4tQjWxLsziD2822HL6xWLh+M29pIFlYCqbF 6+TxDAbEumJFQBBU2zuPRtkqsG+hIGuQbBpQwmFQsy6H+WEoWkPiNshoQqylziBX fja7sbA+3VPZBJwFk4VT+2DVjhpW9otM9PW90J0v3Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvfeeitdejucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhrhfvkfgjfhfuofggtgesmhdtreerredtjeenucfhrhhomhepifhrvghguceu uhhrugcuoehgrhgvghessghurhgurdhmvgeqnecuggftrfgrthhtvghrnhepudehudehle ethfffleetheekheevvdetfeffhfejtddvjeffudehffelveejjeeinecuffhomhgrihhn pehpohhsthhgrhgvshhqlhdrohhrghdpmhhitghrohhsohhfthdrtghomhenucevlhhush htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehgrhgvghessghurhgu rdhmvgdpnhgspghrtghpthhtohepuddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoh epphhgshhqlhdqhhgrtghkvghrsheslhhishhtshdrphhoshhtghhrvghsqhhlrdhorhhg X-ME-Proxy: Feedback-ID: i675e48f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Sun, 23 Nov 2025 10:23:03 -0500 (EST) Date: Sun, 23 Nov 2025 10:22:47 -0500 From: Greg Burd Reply-To: Greg Burd To: PostgreSQL Hackers Message-ID: <336c6acf-39ce-4a06-870e-3055400a5d8d@app.fastmail.com> In-Reply-To: References: Subject: Re: Trying out X-Mailer: Mailspring MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="692326c7_ed605fc_1582" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --692326c7_ed605fc_1582 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Mon, Nov 10, 2025, at 8:17 AM, Thomas Munro wrote: > Hi, > > Here is an experimental patch to try out standard C (and C++) atomics > to implement port/atomics.h, and also add more types and operations. > It's mostly just redirecting our names to the standard ones, except > for our barriers and slightly extended pg=5Fatomic=5Fflag, so there isn= 't > much left of the code. > > Here also is a semi-independent patch to implement storage/spin.h with > pg=5Fatomic=5Fflag. It keeps a small amount of the architecture-specif= ic > magic, but moves it out to src/port/spin=5Fdelay.h. > > I'm not saying they're correct, performant or portable yet, that'll > require studying codegen and performance on a bunch of weird and > wonderful systems, but they at least passes basic testing on the usual > suspects and CI systems, except for Windows which needs a newer > toolchain so I haven't tried yet. It should hopefully just work=E2=84=A2= on > VS 2022 (same version that provides , about which more > soon). > > All that being the case, it's not far enough along to be a serious > proposal, but I imagine others will be looking into things like this > since we pulled the trigger on C11 and I figured I might as well share > a basic working patch set to avoid duplicated effort... Hopefully it > works well enough to kick the tyres and try to find the difficult > problems, test it out on weird systems, etc etc. > > Attachments: > * v1-0001-Add-some-missing-include-limits.h.patch > * v1-0002-Redefine-port-atomics.h-on-top-of-stdatomic.h.patch > * v1-0003-Use-atomics-API-to-implement-spinlocks.patch > * v1-0004-Remove-configure-meson-checks-for-atomics.patch Hello Thomas, =46irst off, thanks for working on this set of changes. I like your chan= ges in general, except for removing Solaris/Illumos (but I get it). ;-P As mentioned on a separate thread about fixing ARM64 support when buildin= g with MSVC on Win11 =5B1=5D I tried out this patch. The reply on that t= hread had an issue with =5Fmm=5Fpause() in spin=5Fdelay(), it turns out w= e need to use =5F=5Fyield() =5B2=5D. I went ahead and fixed that, so ign= ore that patch on the other thread =5B1=5D. The new patch attached that = layers on top of your work and supports that platform, there was one mino= r change that was required: =23ifdef =5FMSC=5FVER /* * If using Visual C++ on Win64, inline assembly is unavailable. Use a * =5Fmm=5Fpause intrinsic instead of rep nop. =46or ARM64, use the =5F=5F= yield() * intrinsic which emits the YIELD instruction as a hint to the processo= r. */ =23if defined(=5FM=5FARM64) =5F=5Fyield(); =23elif defined(=5FWIN64) =5Fmm=5Fpause(); =23else /* See comment for gcc code. Same code, MASM syntax */ =5F=5Fasm rep nop; =23endif =23endif /* =5FMSC=5FVER */ Visual Studio 2026 (Community) cl (msvc 19.50.35718 =22Microsoft (R) C/C++ Optimizing Compiler Version 1= 9.50.35718 for ARM64=22) link 14.50.35718.0 tests are passing, best. -greg =5B1=5D https://www.postgresql.org/message-id/3c576ad7-d2da-4137-b791-582= 1da7cc370%40app.fastmail.com =5B2=5D https://learn.microsoft.com/en-us/cpp/intrinsics/arm64-intrinsics= =3Fview=3Dmsvc-180 --692326c7_ed605fc_1582 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v20251123-0001-WIP-ARM64-MSVC-stdatomic.patch" RnJvbSAyOTUxNjFlMDljNDE2NTg4NDFhOTAyYzU3Zjk5ZGE1NDM5NWIyMGRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJ1cmQgPGdyZWdAYnVyZC5tZT4KRGF0ZTogU3VuLCAy MyBOb3YgMjAyNSAwNzo1ODo0NyAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggdjIwMjUxMTIzXSBXSVAg QVJNNjQvTVNWQyBzdGRhdG9taWMKCi0tLQogZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5zZ21s IHwgIDIgKy0KIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysrKysrKysr KysrLQogc3JjL2luY2x1ZGUvcG9ydC9zcGluX2RlbGF5LmggIHwgIDcgKysrKystLQogc3JjL3Bv cnQvcGdfY3JjMzJjX2FybXY4LmMgICAgIHwgIDIgKysKIHNyYy90b29scy9tc3ZjX2dlbmRlZi5w bCAgICAgICB8ICA4ICsrKystLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyks IDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5z Z21sIGIvZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5zZ21sCmluZGV4IGZlOGQ3M2UxZjhjLi4z ZjhkNTEyYTkwNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9pbnN0YWxsYXRpb24uc2dtbApAQCAtMzk2Nyw3ICszOTY3LDcgQEAg Y29uZmlndXJlIC4uLiBMREZMQUdTPSItUiAvdXNyL3Nmdy9saWI6L29wdC9zZncvbGliOi91c3Iv bG9jYWwvbGliIgogICAgPHNlY3QzIGlkPSJpbnN0YWxsLXdpbmRvd3MtZnVsbC02NC1iaXQiPgog ICAgIDx0aXRsZT5TcGVjaWFsIENvbnNpZGVyYXRpb25zIGZvciA2NC1CaXQgV2luZG93czwvdGl0 bGU+CiAgICAgPHBhcmE+Ci0gICAgIFBvc3RncmVTUUwgd2lsbCBvbmx5IGJ1aWxkIGZvciB0aGUg eDY0IGFyY2hpdGVjdHVyZSBvbiA2NC1iaXQgV2luZG93cy4KKyAgICAgUG9zdGdyZVNRTCB3aWxs IG9ubHkgYnVpbGQgZm9yIHRoZSB4NjQgYW5kIEFSTTY0IGFyY2hpdGVjdHVyZXMgb24gNjQtYml0 IFdpbmRvd3MuCiAgICAgPC9wYXJhPgogICAgIDxwYXJhPgogICAgICBNaXhpbmcgMzItIGFuZCA2 NC1iaXQgdmVyc2lvbnMgaW4gdGhlIHNhbWUgYnVpbGQgdHJlZSBpcyBub3Qgc3VwcG9ydGVkLgpk aWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAppbmRleCAxYTIwMDVlNzVjNC4u MTg2MzcxODBhYjEgMTAwNjQ0Ci0tLSBhL21lc29uLmJ1aWxkCisrKyBiL21lc29uLmJ1aWxkCkBA IC0yMTU4LDYgKzIxNTgsMTEgQEAgZW5kZm9yZWFjaAogCiAKIGlmIGNjLmdldF9pZCgpID09ICdt c3ZjJworICAjIEFkZCBBUk02NCBhcmNoaXRlY3R1cmUgZmxhZyBmb3IgV2luZG93cyAxMSBBUk02 NCBmb3IgY29ycmVjdCBpbnRyZW5zaWNzCisgIGlmIGhvc3RfbWFjaGluZS5zeXN0ZW0oKSA9PSAn d2luZG93cycgYW5kIGhvc3RfbWFjaGluZS5jcHVfZmFtaWx5KCkgPT0gJ2FhcmNoNjQnCisgICAg YWRkX3Byb2plY3RfYXJndW1lbnRzKCcvYXJjaDphcm12OS40JywgbGFuZ3VhZ2U6IFsnYycsICdj cHAnXSkKKyAgZW5kaWYKKwogICBjZmxhZ3Nfd2FybiArPSBbCiAgICAgIyBXYXJuaW5ncyB0byBk aXNhYmxlOgogICAgICMgZnJvbSAvVzE6CkBAIC0yMzY3LDYgKzIzNzIsMTEgQEAgaWYgaG9zdF9j cHUgPT0gJ3g4Nicgb3IgaG9zdF9jcHUgPT0gJ3g4Nl82NCcKICAgZWxzZQogCiAgICAgcHJvZyA9 ICcnJworI2lmZGVmIF9NU0NfVkVSCisjaW5jbHVkZSA8aW50cmluLmg+CisjZWxzZQorI2luY2x1 ZGUgPGFybV9hY2xlLmg+CisjZW5kaWYKICNpbmNsdWRlIDxubW1pbnRyaW4uaD4KIHVuc2lnbmVk IGludCBjcmM7CiAKQEAgLTI0NTAsNyArMjQ2MCwxMCBAQCBpbnQgbWFpbih2b2lkKQogfQogJycn CiAKLSAgaWYgY2MubGlua3MocHJvZywgbmFtZTogJ19fY3JjMzJjYiwgX19jcmMzMmNoLCBfX2Ny YzMyY3csIGFuZCBfX2NyYzMyY2Qgd2l0aG91dCAtbWFyY2g9YXJtdjgtYStjcmMnLAorICBpZiBj Yy5nZXRfaWQoKSA9PSAnbXN2YycKKyAgICBjZGF0YS5zZXQoJ1VTRV9BUk1WOF9DUkMzMkMnLCAx KQorICAgIGhhdmVfb3B0aW1pemVkX2NyYyA9IHRydWUKKyAgZWxpZiBjYy5saW5rcyhwcm9nLCBu YW1lOiAnX19jcmMzMmNiLCBfX2NyYzMyY2gsIF9fY3JjMzJjdywgYW5kIF9fY3JjMzJjZCB3aXRo b3V0IC1tYXJjaD1hcm12OC1hK2NyYycsCiAgICAgICBhcmdzOiB0ZXN0X2NfYXJncykKICAgICAj IFVzZSBBUk0gQ1JDIEV4dGVuc2lvbiB1bmNvbmRpdGlvbmFsbHkKICAgICBjZGF0YS5zZXQoJ1VT RV9BUk1WOF9DUkMzMkMnLCAxKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydC9zcGluX2Rl bGF5LmggYi9zcmMvaW5jbHVkZS9wb3J0L3NwaW5fZGVsYXkuaAppbmRleCBjNTgzNjk4YWY4ZS4u Zjk0NGM4MzYyZGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BvcnQvc3Bpbl9kZWxheS5oCisr KyBiL3NyYy9pbmNsdWRlL3BvcnQvc3Bpbl9kZWxheS5oCkBAIC02OSw5ICs2OSwxMiBAQCBwZ19z cGluX2RlbGF5KHZvaWQpCiAKIAkvKgogCSAqIElmIHVzaW5nIFZpc3VhbCBDKysgb24gV2luNjQs IGlubGluZSBhc3NlbWJseSBpcyB1bmF2YWlsYWJsZS4gIFVzZSBhCi0JICogX21tX3BhdXNlIGlu dHJpbnNpYyBpbnN0ZWFkIG9mIHJlcCBub3AuCisJICogX21tX3BhdXNlIGludHJpbnNpYyBpbnN0 ZWFkIG9mIHJlcCBub3AuIEZvciBBUk02NCwgdXNlIHRoZSBfX3lpZWxkKCkKKwkgKiBpbnRyaW5z aWMgd2hpY2ggZW1pdHMgdGhlIFlJRUxEIGluc3RydWN0aW9uIGFzIGEgaGludCB0byB0aGUgcHJv Y2Vzc29yLgogCSAqLwotI2lmIGRlZmluZWQoX1dJTjY0KQorI2lmIGRlZmluZWQoX01fQVJNNjQp CisJX195aWVsZCgpOworI2VsaWYgZGVmaW5lZChfV0lONjQpCiAJX21tX3BhdXNlKCk7CiAjZWxz ZQogCS8qIFNlZSBjb21tZW50IGZvciBnY2MgY29kZS4gU2FtZSBjb2RlLCBNQVNNIHN5bnRheCAq LwpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvcGdfY3JjMzJjX2FybXY4LmMgYi9zcmMvcG9ydC9wZ19j cmMzMmNfYXJtdjguYwppbmRleCA1YmEwNzBiYjk5ZC4uNmExNTVkZGRlMWUgMTAwNjQ0Ci0tLSBh L3NyYy9wb3J0L3BnX2NyYzMyY19hcm12OC5jCisrKyBiL3NyYy9wb3J0L3BnX2NyYzMyY19hcm12 OC5jCkBAIC0xNCw3ICsxNCw5IEBACiAgKi8KICNpbmNsdWRlICJjLmgiCiAKKyNpZm5kZWYgX01T Q19WRVIKICNpbmNsdWRlIDxhcm1fYWNsZS5oPgorI2VuZGlmCiAKICNpbmNsdWRlICJwb3J0L3Bn X2NyYzMyYy5oIgogCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Y19nZW5kZWYucGwgYi9zcmMv dG9vbHMvbXN2Y19nZW5kZWYucGwKaW5kZXggODY4YWFkNTFiMDkuLmM5MmM5NGM0Nzc1IDEwMDY0 NAotLS0gYS9zcmMvdG9vbHMvbXN2Y19nZW5kZWYucGwKKysrIGIvc3JjL3Rvb2xzL21zdmNfZ2Vu ZGVmLnBsCkBAIC0xMTgsOSArMTE4LDkgQEAgc3ViIHdyaXRlZGVmCiAJewogCQlteSAkaXNkYXRh ID0gJGRlZi0+eyRmfSBlcSAnZGF0YSc7CiAKLQkJIyBTdHJpcCB0aGUgbGVhZGluZyB1bmRlcnNj b3JlIGZvciB3aW4zMiwgYnV0IG5vdCB4NjQKKwkJIyBTdHJpcCB0aGUgbGVhZGluZyB1bmRlcnNj b3JlIGZvciB3aW4zMiwgYnV0IG5vdCB4NjQgYW5kIGFhcmNoNjQKIAkJJGYgPX4gcy9eXy8vCi0J CSAgdW5sZXNzICgkYXJjaCBlcSAieDg2XzY0Iik7CisJCSAgdW5sZXNzICgkYXJjaCBlcSAieDg2 XzY0IiB8fCAkYXJjaCBlcSAiYWFyY2g2NCIpOwogCiAJCSMgRW1pdCBqdXN0IHRoZSBuYW1lIGlm IGl0J3MgYSBmdW5jdGlvbiBzeW1ib2wsIG9yIGVtaXQgdGhlIG5hbWUKIAkJIyBkZWNvcmF0ZWQg d2l0aCB0aGUgREFUQSBvcHRpb24gZm9yIHZhcmlhYmxlcy4KQEAgLTE0MSw3ICsxNDEsNyBAQCBz dWIgd3JpdGVkZWYKIHN1YiB1c2FnZQogewogCWRpZSgiVXNhZ2U6IG1zdmNfZ2VuZGVmLnBsIC0t YXJjaCA8YXJjaD4gLS1kZWZmaWxlIDxkZWZmaWxlPiAtLXRlbXBkaXIgPHRlbXBkaXI+IGZpbGVz LW9yLWRpcmVjdG9yaWVzXG4iCi0JCSAgLiAiICAgIGFyY2g6IHg4NiB8IHg4Nl82NFxuIgorCQkg IC4gIiAgICBhcmNoOiB4ODYgfCB4ODZfNjQgfCBhYXJjaDY0XG4iCiAJCSAgLiAiICAgIGRlZmZp bGU6IHBhdGggb2YgdGhlIGdlbmVyYXRlZCBmaWxlXG4iCiAJCSAgLiAiICAgIHRlbXBkaXI6IGRp cmVjdG9yeSBmb3IgdGVtcG9yYXJ5IGZpbGVzXG4iCiAJCSAgLiAiICAgIGZpbGVzIG9yIGRpcmVj dG9yaWVzOiBvYmplY3QgZmlsZXMgb3IgZGlyZWN0b3J5IGNvbnRhaW5pbmcgb2JqZWN0IGZpbGVz XG4iCkBAIC0xNTgsNyArMTU4LDcgQEAgR2V0T3B0aW9ucygKIAkndGVtcGRpcjpzJyA9PiBcJHRl bXBkaXIsKSBvciB1c2FnZSgpOwogCiB1c2FnZSgiYXJjaDogJGFyY2giKQotICB1bmxlc3MgKCRh cmNoIGVxICd4ODYnIHx8ICRhcmNoIGVxICd4ODZfNjQnKTsKKyAgdW5sZXNzICgkYXJjaCBlcSAn eDg2JyB8fCAkYXJjaCBlcSAneDg2XzY0JyB8fCAkYXJjaCBlcSAnYWFyY2g2NCcpOwogCiBteSBA ZmlsZXM7CiAKLS0gCjIuNTIuMC53aW5kb3dzLjEKCg== --692326c7_ed605fc_1582--