Re: [PATCH -kselftest/kunit] kcsan: test: use new suite_{init,exit} support

From: Marco Elver
Date: Wed May 04 2022 - 09:59:11 EST


On Wed, 4 May 2022 at 15:54, David Gow <davidgow@xxxxxxxxxx> wrote:
>
> On Wed, May 4, 2022 at 9:48 PM Marco Elver <elver@xxxxxxxxxx> wrote:
> >
> > On Wed, 4 May 2022 at 15:43, David Gow <davidgow@xxxxxxxxxx> wrote:
> > >
> > > On Wed, May 4, 2022 at 3:09 PM Marco Elver <elver@xxxxxxxxxx> wrote:
> > > >
> > > > Use the newly added suite_{init,exit} support for suite-wide init and
> > > > cleanup. This avoids the unsupported method by which the test used to do
> > > > suite-wide init and cleanup (avoiding issues such as missing TAP
> > > > headers, and possible future conflicts).
> > > >
> > > > Signed-off-by: Marco Elver <elver@xxxxxxxxxx>
> > > > ---
> > > > This patch should go on the -kselftest/kunit branch, where this new
> > > > support currently lives, including a similar change to the KFENCE test.
> > > > ---
> > >
> > > Thanks! This is working for me. I ran it as a builtin using kunit_tool
> > > under (I had to add an x86_64-smp architecture), then use:
> > > ./tools/testing/kunit/kunit.py run --arch=x86_64-smp
> > > --kconfig_add=CONFIG_KCSAN=y --kconfig_add=CONFIG_DEBUG_KERNEL=y
> > > --timeout 900 'kcsan'
> > >
> > > To add the x86_64 smp architecture, I added a file
> > > ./tools/testing/kunit/qemu_configs/x86_64-smp.py, which was a copy of
> > > x86_64.py but with 'CONFIG_SMP=y' added to XXXX and '-smp 16' added to
> > > YYYY.
>
> (Whoops, forgot to copy this in properly: XXXX was 'kconfig' and YYYY
> was 'extra_qemu_params'.)
>
> The x86_64-smp.py file ends up looking like this:
> ---8<---
> from ..qemu_config import QemuArchParams
>
> QEMU_ARCH = QemuArchParams(linux_arch='x86_64',
> kconfig='''
> CONFIG_SERIAL_8250=y
> CONFIG_SERIAL_8250_CONSOLE=y
> CONFIG_SMP=y
> ''',
> qemu_arch='x86_64',
> kernel_path='arch/x86/boot/bzImage',
> kernel_command_line='console=ttyS0',
> extra_qemu_params=['-smp 16'])
> ---8<---
> > > It took about 10 minutes on my system, so the default 5 minute timeout
> > > definitely wasn't enough.
> >
> > The trick to reduce the KCSAN test time is to set
> > CONFIG_KCSAN_REPORT_ONCE_IN_MS=100 or lower. So should you consider a
> > special KUnit config, I'd add that.
> >
>
> Ah: it might be worth adding a dedicated kcsan .kunitconfig, in which
> case this would be helpful. It'd also need the SMP qemu config above
> before it's particularly useful, and 16 was a randomly-picked number
> of CPUs -- not sure if there's a better default.
>
> If you're likely to use it, though, we can definitely add it in. I'm
> sure there'll eventually be other uses for an SMP config under
> kunit_tool, too.

I currently have some other frankenscript to run it, but I wouldn't
mind just using kunit_tool to do so. So having real SMP support there
would be very useful.

Thanks,
-- Marco