Re: [PATCH -rcu/kcsan 05/23] kcsan: Add core memory barrier instrumentation functions

Marco Elver
2021-10-05T11:50:56Z

On Tue, 5 Oct 2021 at 13:45, Peter Zijlstra <peterz@infradead.org> wrote:
> On Tue, Oct 05, 2021 at 01:41:18PM +0200, Peter Zijlstra wrote:
> > On Tue, Oct 05, 2021 at 12:58:47PM +0200, Marco Elver wrote:
> > > +static __always_inline void kcsan_atomic_release(int memorder)
> > > +{
> > > + if (memorder == __ATOMIC_RELEASE ||
> > > + memorder == __ATOMIC_SEQ_CST ||
> > > + memorder == __ATOMIC_ACQ_REL)
> > > + __kcsan_release();
> > > +}
> > > +
[...]
> > > + kcsan_atomic_release(memorder);
> > > __atomic_thread_fence(memorder);
> > > }
> > > EXPORT_SYMBOL(__tsan_atomic_thread_fence);
> >
> > I find that very hard to read.. kcsan_atomic_release() it not in fact a
> > release. It might be a release if @memorder implies one.

You're right, this name can be improved.
`kcsan_atomic_builtin_memorder(..)` is probably better

> Also, what's the atomic part signify? Is that because you're modeling
> the difference in acquire/release semantics between
> smp_load_{acquire,release}() and atomic*_{acquire,release}() ?

Sorry, just a bad name. It's about the builtins. The above suggested
name should hopefully be clearer.