Re: optimize atomic exchanges
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2023-12-01T03:56:27Z
Lists: pgsql-hackers
Hi, On 2023-11-30 21:18:15 -0600, Nathan Bossart wrote: > On Wed, Nov 29, 2023 at 03:29:05PM -0600, Nathan Bossart wrote: > > I haven't done any sort of performance testing on this yet. Some > > preliminary web searches suggest that there is unlikely to be much > > difference between cmpxchg and xchg, but presumably there's some difference > > between xchg and doing cmpxchg in a while loop (as is done in > > atomics/generic.h today). I'll report back once I've had a chance to do > > some testing... > > Some rudimentary tests show a >40% speedup with this patch on x86_64. On bigger machines, with contention, the wins are likely much higher. I see two orders of magnitude higher throughput in a test program that I had around, on a two socket cascade lake machine. Of course it's also much less powerfull... Greetings, Andres Freund
Commits
-
Optimize pg_atomic_exchange_u32 and pg_atomic_exchange_u64.
- 64b1fb5f0326 17.0 landed