Messages in this thread | | | Date | Fri, 22 Nov 2019 21:31:05 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v10 6/6] x86/split_lock: Enable split lock detection by kernel parameter |
| |
On Fri, Nov 22, 2019 at 05:48:14PM +0000, Luck, Tony wrote: > > When we use byte ops, we must consider the word as 4 independent > > variables. And in that case the later load might observe the lock-byte > > state from 3, because the modification to the lock byte from 4 is in > > CPU2's store-buffer. > > So we absolutely violate this with the optimization for constant arguments > to set_bit(), clear_bit() and change_bit() that are implemented as byte ops. > > So is code that does: > > set_bit(0, bitmap); > > on one CPU. While another is doing: > > set_bit(mybit, bitmap); > > on another CPU safe? The first operates on just one byte, the second on 8 bytes.
It is safe if all you care about is the consistency of that one bit.
| |