On Mon, Jan 20, 2020 at 05:52:23PM +0100, Peter Zijlstra wrote: > On Mon, Jan 20, 2020 at 08:27:25AM -0800, Paul E. McKenney wrote: > > On Mon, Jan 20, 2020 at 03:40:48PM +0100, Peter Zijlstra wrote: > > > On Mon, Jan 20, 2020 at 03:19:25PM +0100, Marco Elver wrote: > > > > Add explicit KCSAN checks for bitops. > > > > > > > > Note that test_bit() is an atomic bitop, and we instrument it as such, > > > > > > Well, it is 'atomic' in the same way that atomic_read() is. Both are > > > very much not atomic ops, but are part of an interface that facilitates > > > atomic operations. > > > > True, but they all are either inline assembly or have either an > > implicit or explicit cast to volatile, so they could be treated > > the same as atomic_read(), correct? If not, what am I missing? > > Sure, but that is due to instrumentation requirements, not anything > else. > > Also note the distinct lack of __test_bit(), to mirror the non-atomic > __set_bit() and __clear_bit(). OK, I will bite. ;-) We also don't have __atomic_read() and __atomic_set(), yet atomic_read() and atomic_set() are considered to be non-racy, right? Thanx, Paul