CAS implementation may be broken
trd at 45mercystreet.com
Thu Nov 26 11:14:19 EST 2009
Jamie Lokier wrote:
> Toby Douglass wrote:
>> Interestingly, I saw a day or two ago that there is a double-word
>> version of LDREX. The atomic-ptr project, which forms the basis of the
>> GCC garbage collector, relies on this; it does not in fact use LL/SC on
>> ARM, but rather uses double-word CAS using a pointer-counter pair.
> Note that pointer-counter is not really reliable.
> Of course even if the counter wraps, you still have to be 1/2^32
> unlucky to see the same value. But that's enough to make it unreliable.
I concur, but it's not a problem on 64-bit.
More information about the linux-arm-kernel