summaryrefslogtreecommitdiffstats
path: root/kernel/sched/Makefile
diff options
context:
space:
mode:
authorMarco Elver <elver@google.com>2021-11-30 12:44:29 +0100
committerPaul E. McKenney <paulmck@kernel.org>2021-12-10 01:42:28 +0100
commit6f3f0c98b5665f437a631882653b5baf7dd98448 (patch)
tree7c33c02f596a70d0f3a6cd2cbf20053fd88cc612 /kernel/sched/Makefile
parentmm, kcsan: Enable barrier instrumentation (diff)
downloadlinux-6f3f0c98b5665f437a631882653b5baf7dd98448.tar.xz
linux-6f3f0c98b5665f437a631882653b5baf7dd98448.zip
sched, kcsan: Enable memory barrier instrumentation
There's no fundamental reason to disable KCSAN for scheduler code, except for excessive noise and performance concerns (instrumenting scheduler code is usually a good way to stress test KCSAN itself). However, several core sched functions imply memory barriers that are invisible to KCSAN without instrumentation, but are required to avoid false positives. Therefore, unconditionally enable instrumentation of memory barriers in scheduler code. Also update the comment to reflect this and be a bit more brief. Signed-off-by: Marco Elver <elver@google.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'kernel/sched/Makefile')
-rw-r--r--kernel/sched/Makefile7
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/sched/Makefile b/kernel/sched/Makefile
index c7421f2d05e1..c83b37af155b 100644
--- a/kernel/sched/Makefile
+++ b/kernel/sched/Makefile
@@ -11,11 +11,10 @@ ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
# that is not a function of syscall inputs. E.g. involuntary context switches.
KCOV_INSTRUMENT := n
-# There are numerous data races here, however, most of them are due to plain accesses.
-# This would make it even harder for syzbot to find reproducers, because these
-# bugs trigger without specific input. Disable by default, but should re-enable
-# eventually.
+# Disable KCSAN to avoid excessive noise and performance degradation. To avoid
+# false positives ensure barriers implied by sched functions are instrumented.
KCSAN_SANITIZE := n
+KCSAN_INSTRUMENT_BARRIERS := y
ifneq ($(CONFIG_SCHED_OMIT_FRAME_POINTER),y)
# According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is