summaryrefslogtreecommitdiffstats
path: root/lib/Kconfig.debug
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-06-11 09:50:31 +0200
committerThomas Gleixner <tglx@linutronix.de>2024-08-08 17:36:35 +0200
commit6cd0dd934b03d4ee4094ac474108723e2f2ed7d6 (patch)
tree5647e97187321200708feb39da5dec11c4750329 /lib/Kconfig.debug
parentx86/entry: Remove unwanted instrumentation in common_interrupt() (diff)
downloadlinux-6cd0dd934b03d4ee4094ac474108723e2f2ed7d6.tar.xz
linux-6cd0dd934b03d4ee4094ac474108723e2f2ed7d6.zip
kcov: Add interrupt handling self test
Add a boot self test that can catch sprious coverage from interrupts. The coverage callback filters out interrupt code, but only after the handler updates preempt count. Some code periodically leaks out of that section and leads to spurious coverage. Add a best-effort (but simple) test that is likely to catch such bugs. If the test is enabled on CI systems that use KCOV, they should catch any issues fast. Signed-off-by: Dmitry Vyukov <dvyukov@google.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Alexander Potapenko <glider@google.com> Reviewed-by: Marco Elver <elver@google.com> Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com> Link: https://lore.kernel.org/all/7662127c97e29da1a748ad1c1539dd7b65b737b2.1718092070.git.dvyukov@google.com
Diffstat (limited to 'lib/Kconfig.debug')
-rw-r--r--lib/Kconfig.debug8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index a30c03a66172..270e367b3e6f 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -2173,6 +2173,14 @@ config KCOV_IRQ_AREA_SIZE
soft interrupts. This specifies the size of those areas in the
number of unsigned long words.
+config KCOV_SELFTEST
+ bool "Perform short selftests on boot"
+ depends on KCOV
+ help
+ Run short KCOV coverage collection selftests on boot.
+ On test failure, causes the kernel to panic. Recommended to be
+ enabled, ensuring critical functionality works as intended.
+
menuconfig RUNTIME_TESTING_MENU
bool "Runtime Testing"
default y