Re: [PATCH -rcu] asm-generic, kcsan: Add KCSAN instrumentation for bitops

From: Arnd Bergmann
Date: Mon Jan 20 2020 - 14:03:16 EST


On Mon, Jan 20, 2020 at 4:11 PM Marco Elver <elver@xxxxxxxxxx> wrote:
> On Mon, 20 Jan 2020 at 15:40, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > On Mon, Jan 20, 2020 at 3:23 PM Marco Elver <elver@xxxxxxxxxx> wrote:
> > > On Fri, 17 Jan 2020 at 14:14, Marco Elver <elver@xxxxxxxxxx> wrote:
> > > > On Fri, 17 Jan 2020 at 13:25, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > > > > On Wed, Jan 15, 2020 at 9:50 PM Marco Elver <elver@xxxxxxxxxx> wrote:
> >
> > > > > If you can't find any, I would prefer having the simpler interface
> > > > > with just one set of annotations.
> > > >
> > > > That's fair enough. I'll prepare a v2 series that first introduces the
> > > > new header, and then applies it to the locations that seem obvious
> > > > candidates for having both checks.
> > >
> > > I've sent a new patch series which introduces instrumented.h:
> > > http://lkml.kernel.org/r/20200120141927.114373-1-elver@xxxxxxxxxx
> >
> > Looks good to me, feel free to add
> >
> > Acked-by: Arnd Bergmann <arnd@xxxxxxxx>
> >
> > if you are merging this through your own tree or someone else's,
> > or let me know if I should put it into the asm-generic git tree.
>
> Thank you! It seems there is still some debate around the user-copy
> instrumentation.
>
> The main question we have right now is if we should add pre/post hooks
> for them. Although in the version above I added KCSAN checks after the
> user-copies, it seems maybe we want it before. I personally don't have
> a strong preference, and wanted to err on the side of being more
> conservative.
>
> If I send a v2, and it now turns out we do all the instrumentation
> before the user-copies for KASAN and KCSAN, then we have a bunch of
> empty hooks. However, for KMSAN we need the post-hook, at least for
> copy_from_user. Do you mind a bunch of empty functions to provide
> pre/post hooks for user-copies? Could the post-hooks be generally
> useful for something else?

I'd prefer not to add any empty hooks, let's do that once they
are actually used.

Arnd