Re: [PATCH 0/7] kcsan: Introduce CONFIG_KCSAN_PERMISSIVE

From: Paul E. McKenney
Date: Tue Jun 15 2021 - 16:39:53 EST


On Tue, Jun 15, 2021 at 08:51:18PM +0200, Marco Elver wrote:
> On Tue, Jun 15, 2021 at 11:19AM -0700, Paul E. McKenney wrote:
> [...]
> > Queued and pushed for v5.15, thank you both!
> >
> > I also queued the following patch making use of CONFIG_KCSAN_STRICT, and I
> > figured that I should run it past you guys to make check my understanding.
> >
> > Thoughts?
>
> You still need CONFIG_KCSAN_INTERRUPT_WATCHER=y, but otherwise looks
> good.

I knew I was missing something... :-/

> I thought I'd leave that out for now, but now thinking about it, we
> might as well imply interruptible watchers. If you agree, feel free to
> queue the below patch ahead of yours.

That works for me! I have queued the patch below and rebased it to
precede my change to the torture-test infrastructure.

Thanx, Paul

> Thanks,
> -- Marco
>
> ------ >8 ------
>
> From: Marco Elver <elver@xxxxxxxxxx>
> Date: Tue, 15 Jun 2021 20:39:38 +0200
> Subject: [PATCH] kcsan: Make strict mode imply interruptible watchers
>
> If CONFIG_KCSAN_STRICT=y, select CONFIG_KCSAN_INTERRUPT_WATCHER as well.
>
> With interruptible watchers, we'll also report same-CPU data races; if
> we requested strict mode, we might as well show these, too.
>
> Suggested-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
> Signed-off-by: Marco Elver <elver@xxxxxxxxxx>
> ---
> lib/Kconfig.kcsan | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/Kconfig.kcsan b/lib/Kconfig.kcsan
> index 26f03c754d39..e0a93ffdef30 100644
> --- a/lib/Kconfig.kcsan
> +++ b/lib/Kconfig.kcsan
> @@ -150,7 +150,8 @@ config KCSAN_SKIP_WATCH_RANDOMIZE
> KCSAN_WATCH_SKIP.
>
> config KCSAN_INTERRUPT_WATCHER
> - bool "Interruptible watchers"
> + bool "Interruptible watchers" if !KCSAN_STRICT
> + default KCSAN_STRICT
> help
> If enabled, a task that set up a watchpoint may be interrupted while
> delayed. This option will allow KCSAN to detect races between
> --
> 2.32.0.272.g935e593368-goog
>