CAS implementation may be broken
Toby Douglass
trd at 45mercystreet.com
Tue Nov 24 19:34:21 EST 2009
Russell King - ARM Linux wrote:
> On Tue, Nov 24, 2009 at 11:34:56PM +0100, Toby Douglass wrote:
>> Additionally; the DMB afterwards seemed to have no value. You could
>> perform the STREX and then your thread could pause indefinitely and were
>> you in a situation where you store was not immediately visible or
>> correctly ordered to another thread, that thread would then read the old
>> value.
> The two DMBs are there to prevent other loads and stores on the _local_
> CPU being speculated inside the compare-and-swap operation, either by
> the compiler or the CPU.
Ahhh!
Forest, trees, etc...
More information about the linux-arm-kernel
mailing list