Commit 1fe84fd4 authored by Marco Elver's avatar Marco Elver Committed by Paul E. McKenney
Browse files

kcsan: Add test suite



This adds KCSAN test focusing on behaviour of the integrated runtime.
Tests various race scenarios, and verifies the reports generated to
console. Makes use of KUnit for test organization, and the Torture
framework for test thread control.

Signed-off-by: default avatarMarco Elver <elver@google.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent c93773c1
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -12,3 +12,6 @@ CFLAGS_core.o := $(call cc-option,-fno-conserve-stack,) \

obj-y := core.o debugfs.o report.o
obj-$(CONFIG_KCSAN_SELFTEST) += test.o

CFLAGS_kcsan-test.o := $(CFLAGS_KCSAN) -g -fno-omit-frame-pointer
obj-$(CONFIG_KCSAN_TEST) += kcsan-test.o
+1084 −0

File added.

Preview size limit exceeded, changes collapsed.

+22 −1
Original line number Diff line number Diff line
@@ -59,7 +59,28 @@ config KCSAN_SELFTEST
	bool "Perform short selftests on boot"
	default y
	help
	  Run KCSAN selftests on boot. On test failure, causes the kernel to panic.
	  Run KCSAN selftests on boot. On test failure, causes the kernel to
	  panic. Recommended to be enabled, ensuring critical functionality
	  works as intended.

config KCSAN_TEST
	tristate "KCSAN test for integrated runtime behaviour"
	depends on TRACEPOINTS && KUNIT
	select TORTURE_TEST
	help
	  KCSAN test focusing on behaviour of the integrated runtime. Tests
	  various race scenarios, and verifies the reports generated to
	  console. Makes use of KUnit for test organization, and the Torture
	  framework for test thread control.

	  Each test case may run at least up to KCSAN_REPORT_ONCE_IN_MS
	  milliseconds. Test run duration may be optimized by building the
	  kernel and KCSAN test with KCSAN_REPORT_ONCE_IN_MS set to a lower
	  than default value.

	  Say Y here if you want the test to be built into the kernel and run
	  during boot; say M if you want the test to build as a module; say N
	  if you are unsure.

config KCSAN_EARLY_ENABLE
	bool "Early enable during boot"