The amd64 spintlock instructions use no AMD-specific features. It's
base intel 64bit instruction set. We ship a product with similar such
spin locks and have never had an issue across a large variety of
chipsets (Intel, AMD, and virtualized).
In short, if you can actually run 64bit code, the CAS stuff should
just work.
On Jun 24, 2009, at 8:27 AM, Gregory Stark wrote:
Theo Schlossnagle wrote:
Tom Lane wrote:
There is no reason for the i386 or AMD64 code to be different from
what's
already tested on Linux --- the hardware's the same and the OS
surely
doesn't make a difference at this level.
On linux you use gcc, which allows for inline assembly. So, the
code is
already very different.
How does this interact with binary builds such as rpms? If someone
installs an
amd64 binary on an x86 machine or vice versa does this assembly do
the right
thing at all? Does it perform slowly?
Ideally we would compile both and pick the right one at run-time but
that
might have annoying overhead if there's a branch before every
pg_atomic_cas
call.
Perhaps a minimal thing to do would be to detect a mismatch on
startup and log
a message about it.
--
Gregory Stark
http://mit.edu/~gsstark/resume.pdf
--
Theo Schlossnagle
http://omniti.com/is/theo-schlossnagle
p: +1.443.325.1357 x201 f: +1.410.872.4911
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs