On Wed, May 18, 2022 at 12:32 AM David Gow davidgow@google.com wrote:
diff --git a/kernel/kcsan/.kunitconfig b/kernel/kcsan/.kunitconfig new file mode 100644 index 000000000000..a8a815b1eb73 --- /dev/null +++ b/kernel/kcsan/.kunitconfig @@ -0,0 +1,20 @@ +# Note that the KCSAN tests need to run on an SMP setup. +# Under kunit_tool, this can be done by using the x86_64-smp +# qemu-based architecture: +# ./tools/testing/kunit/kunit.py run --kunitconfig=kernel/kcsan --arch=x86_64-smp
Just noting here, if we go with --qemu_args [1], then we'd change this to --arch=x86_64 --qemu_args='-smp 8' and then probably add CONFIG_SMP=y to this file.
[1] https://lore.kernel.org/linux-kselftest/20220518170124.2849497-1-dlatypov@go...
+CONFIG_KUNIT=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_KCSAN=y +CONFIG_KCSAN_KUNIT_TEST=y
+# Needed for test_barrier_nothreads +CONFIG_KCSAN_STRICT=y +CONFIG_KCSAN_WEAK_MEMORY=y
+# This prevents the test from timing out on many setups. Feel free to remove +# (or alter) this, in conjunction with setting a different test timeout with, +# for example, the --timeout kunit_tool option. +CONFIG_KCSAN_REPORT_ONCE_IN_MS=100
Tangent:
Ah this reminds me, unfortunately you can't use --kconfig_add to overwrite this atm. Right now, it'll just blindly try to append and then complain that one of the two copies of the option is missing.
That might be a feature to look into. Or at least, we can maybe give a better error message.
E.g. with the default kunitconfig, the error currently looks like # Try to overwrite CONFIG_KUNIT_ALL_TESTS=y $ ./tools/testing/kunit/kunit.py config --kconfig_add=CONFIG_KUNIT_ALL_TESTS=m ... ERROR:root:Not all Kconfig options selected in kunitconfig were in the generated .config. This is probably due to unsatisfied dependencies. Missing: CONFIG_KUNIT_ALL_TESTS=m