Hi,
At this year developer's meeting we'd discussed the atomics abstraction
which is necessary for some future improvements. We'd concluded that a
overview over the hardware capabilities of the supported platforms would
be helpful. I've started with that at:
https://wiki.postgresql.org/wiki/Atomics
Does somebody want other columns in there?
From that and previous discussions
(e.g. http://archives.postgresql.org/message-id/20131013004658.GG4056218%40alap2.anarazel.de
) I think we should definitely remove some platforms:
1) VAX. Production ceased 1997. We've never supported OpenVMS, just
netbsd (and probably openbsd)
2) m32r. Our implementation depends on an *unmerged* glibc header. The
website was dead for several *years*, even after the restore patches
can't be downloaded anymore (404).
3) sparcv8: Last released model 1997.
4) i386: Support dropped from windows 98 (yes, really), linux, openbsd (yes, really), netbsd (yes, really). No code
changesneeded.
5) pa-risc.
6) armv-v5
Note that this is *not* a requirement for the atomics abstraction - it
now has a fallback to spinlocks if atomics aren't available. But I don't
think we should add code for practically irrelevant and likely not
working setups.
That'd get us to the situation that all supported platforms support
atomic add & cmpxchg.
Just as a recap: The reason I want the atomics abstraction is so we can
implement improvements like
http://www.postgresql.org/message-id/20130926225545.GB26663@awork2.anarazel.de
and quite a few others sanely.
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services