Re: [PATCH v3] arm64: Enable KCSAN

From: Mark Rutland
Date: Fri Dec 03 2021 - 05:45:43 EST


On Fri, Dec 03, 2021 at 10:29:22AM +0800, Kefeng Wang wrote:
>
> On 2021/12/2 22:44, Mark Rutland wrote:
> > On Thu, Dec 02, 2021 at 03:36:06PM +0100, Marco Elver wrote:
> > > On Thu, 2 Dec 2021 at 15:23, Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> wrote:
> > > > This patch enables KCSAN for arm64, with updates to build rules
> > > > to not use KCSAN for several incompatible compilation units.
> > > >
> > > > Resent GCC version(at least GCC10) made outline-atomics as the
> > > s/Resent/Recent/
> > >
> > > > default option(unlike Clang), which will cause linker errors
> > > > for kernel/kcsan/core.o. Disables the out-of-line atomics by
> > > > no-outline-atomics to fix the linker errors.
> > > >
> > > > Meanwhile, as Mark said[1], there is a specific issue on arm64
> > > > about ARM64_BTI with Clang 11 if KCSAN enabled, which is fixed
> > > > by Clang 12, add CLANG_VERSION check. And also some latent issues
> > > > are need to be fixed which isn't just a KCSAN problem, we make
> > > > the KCSAN depends on EXPERT for now.
> > > >
> > > > Tested selftest and kcsan_test(built with GCC11 and Clang 13),
> > > > and all passed.
> > > >
> > > > [1] https://lkml.org/lkml/2021/12/1/354
> > > Please use lore/kernel.org permalinks. For this one it'd be:
> > > https://lkml.kernel.org/r/YadiUPpJ0gADbiHQ@FVFF77S0Q05N
> > >
> > > (But I think if this is the final version of the patch, hopefully a
> > > maintainer can amend the commit message.)
> > >
> > > > Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
> > > Acked-by: Marco Elver <elver@xxxxxxxxxx> # kernel/kcsan
> > >
> > > is still valid, given nothing changed there. I leave the rest to Mark.
> > I want to do some compiler / config testing before I ack this (just to
> > make sure there isn't some latent issue I've forgotten about), but
> > otherwise I think this should be fine.
> >
> > I'll try to have that done in the next few days.
>
> I will wait for some time, thanks Marco/Mark.
>
> >
> > Any other review/testing would be appreciated!
>
> As Nathan points, commit 8cdd23c23c3d ("arm64: Restrict ARM64_BTI_KERNEL
>
> to clang 12.0.0 and newer"), so need to add Clang version check, which is v2
> does.
>
> is there some other requirement that we need this check, what's your option,

I'm not immediately aware of another reason, so I'm fine with not checking that
for KCSAN -- If I discover another reason I will let you know.

Thanks,
Mark.