Thread: AMD64 dual core mutex/spinlock problem

AMD64 dual core mutex/spinlock problem

From
Zdenek Kotala
Date:
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.


  - Zdenek

PS: You can see Solaris mutex_enter code on
http://cvs.opensolaris.org/source/xref/on/usr/src/uts/intel/ia32/ml/lock_prim.s
Extra lfence instruction after atomic operation fix the problem.