Status of 64 bit atomics
Hi All
Someone recently told me that the postgresql atomics library was incomplete
for 64 bit operations such as pg_atomic_fetch_add_u64() and should not be
used.
Can someone definitively confirm whether it is okay to rely on the 64 bit
atomics
or whether it is better to protect 64 bit operations with a spinlock?
Thanks!
John
On May 27, 2016 5:01 PM, "John Gorman" <johngorman2@gmail.com> wrote:
Hi All
Someone recently told me that the postgresql atomics library was
incomplete
for 64 bit operations such as pg_atomic_fetch_add_u64() and should not be
used.
Can someone definitively confirm whether it is okay to rely on the 64 bit
atomics
or whether it is better to protect 64 bit operations with a spinlock?
Thanks!
John
Golang has asm implementations for these even on 32bit platforms (see
https://github.com/golang/go/tree/master/src/sync/atomic).
Couldn't we borrow them? Or even better, fall back to spin lock on these,
but transparently.
Hi,
On 2016-05-27 11:00:42 -0400, John Gorman wrote:
Someone recently told me that the postgresql atomics library was incomplete
for 64 bit operations such as pg_atomic_fetch_add_u64() and should not be
used.
There's currently no fallback for 32bit platforms without 64bit atomics
support. I posted a patch adding that fallback, which I plan to commit
soon after the start of the 9.7 development window opens.
Can someone definitively confirm whether it is okay to rely on the 64
bit atomics or whether it is better to protect 64 bit operations with
a spinlock?
For current versions 64bit atomics are working, but you'll get
compilation errors if the platform doesn't have 64bit atomics
support. That's not actually many CPUs these days; most prominent are
probably older arm CPUs.
Andres
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers