optimize atomic exchanges
От
Nathan Bossart
Тема
optimize atomic exchanges
Дата
Msg-id
20231129212905.GA1258737@nathanxps13
Список
Дерево обсуждения
optimize atomic exchanges Nathan Bossart <nathandbossart@gmail.com>
Re: optimize atomic exchanges Nathan Bossart <nathandbossart@gmail.com>
Re: optimize atomic exchanges Andres Freund <andres@anarazel.de>
Re: optimize atomic exchanges Nathan Bossart <nathandbossart@gmail.com>
Re: optimize atomic exchanges Nathan Bossart <nathandbossart@gmail.com>
Re: optimize atomic exchanges Nathan Bossart <nathandbossart@gmail.com>
Re: optimize atomic exchanges Andres Freund <andres@anarazel.de>
Re: optimize atomic exchanges Nathan Bossart <nathandbossart@gmail.com>
On Fri, Nov 10, 2023 at 08:55:29PM -0600, Nathan Bossart wrote: > On Fri, Nov 10, 2023 at 06:48:39PM -0800, Andres Freund wrote: >> Yes. We should optimize pg_atomic_exchange_u32() one of these days - it can be >> done *far* faster than a cmpxchg. When I was adding the atomic abstraction >> there was concern with utilizing too many different atomic instructions. I >> didn't really agree back then, but these days I really don't see a reason to >> not use a few more intrinsics. > > I might give this a try, if for no other reason than it'd force me to > improve my mental model of this stuff. :) Here's a first draft. I haven't attempted to add implementations for PowerPC, and I only added the __atomic version for gcc since __sync_lock_test_and_set() only supports setting the value to 1 on some platforms. Otherwise, I tried to add specialized atomic exchange implementations wherever there existed other specialized atomic implementations. 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... -- Nathan Bossart Amazon Web Services: https://aws.amazon.com
В списке pgsql-hackers по дате отправления
От: Robert Haas
Дата:
От: Nathan Bossart
Дата: