Some AMD64 dual core processor series has problem with atomic operation
"lock cmpxchg". It does not work correctly in some case. (I don't know
if it is bug or feature.) This problem occurred in the solaris on the
AMD64 platform. Postgres implement own lock mechanism with similar code
"lock xchg". I am not sure if this is wrong or not. My question is, If
someone has problem with spinlock on AMD64 dual core in 64-bit mode.
PS: You can see Solaris mutex_enter code on
Extra lfence instruction after atomic operation fix the problem.