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().