Re: [PATCH -rcu/kcsan 16/23] locking/atomics, kcsan: Add instrumentation for barriers

From: Peter Zijlstra
Date: Tue Oct 05 2021 - 08:04:09 EST


On Tue, Oct 05, 2021 at 12:58:58PM +0200, Marco Elver wrote:
> @@ -59,6 +60,7 @@ atomic_add(int i, atomic_t *v)
> static __always_inline int
> atomic_add_return(int i, atomic_t *v)
> {
> + kcsan_mb();
> instrument_atomic_read_write(v, sizeof(*v));
> return arch_atomic_add_return(i, v);
> }

This and others,.. is this actually correct? Should that not be
something like:

kscan_mb();
instrument_atomic_read_write(...);
ret = arch_atomic_add_return(i, v);
kcsan_mb();
return ret;

?