Hi, On 2022-11-02 14:55:04 -0400, Tom Lane wrote: > I wrote: > > So about like this, then. > > After actually testing (by removing the ARM stanza on a macOS machine), > it seems that placement doesn't work, because of the default definition > of S_UNLOCK at the bottom of the "#if defined(__GNUC__)" stuff. Putting > it inside that test works, and seems like it should be fine, since this > is a GCC-ism.
Looks reasonable. I tested it on x86-64 by disabling that section and it works. FWIW, In a heavily spinlock-contending workload it's a tad slower, largely due to to loosing spin_delay. If I define that it's very close. Not that it matters hugely, I just thought it'd be good to validate. I wonder if it's worth keeing the full copy of this in the arm section? We could just define SPIN_DELAY() for aarch64? Greetings, Andres Freund