From: Marco Elver <elver@google.com>
To: elver@google.com
Cc: akiyks@gmail.com, stern@rowland.harvard.edu, glider@google.com,
parri.andrea@gmail.com, andreyknvl@google.com, luto@kernel.org,
ard.biesheuvel@linaro.org, arnd@arndb.de, boqun.feng@gmail.com,
bp@alien8.de, dja@axtens.net, dlustig@nvidia.com,
dave.hansen@linux.intel.com, dhowells@redhat.com,
dvyukov@google.com, hpa@zytor.com, mingo@redhat.com,
j.alglave@ucl.ac.uk, joel@joelfernandes.org, corbet@lwn.net,
jpoimboe@redhat.com, luc.maranget@inria.fr, mark.rutland@arm.com,
npiggin@gmail.com, paulmck@linux.ibm.com, peterz@infradead.org,
tglx@linutronix.de, will@kernel.org, kasan-dev@googlegroups.com,
linux-arch@vger.kernel.org, linux-doc@vger.kernel.org,
linux-efi@vger.kernel.org, linux-kbuild@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org
Subject: [PATCH v2 3/8] build, kcsan: Add KCSAN build exceptions
Date: Thu, 17 Oct 2019 16:13:00 +0200 [thread overview]
Message-ID: <20191017141305.146193-4-elver@google.com> (raw)
In-Reply-To: <20191017141305.146193-1-elver@google.com>
This blacklists several compilation units from KCSAN. See the respective
inline comments for the reasoning.
Signed-off-by: Marco Elver <elver@google.com>
---
kernel/Makefile | 5 +++++
kernel/sched/Makefile | 6 ++++++
mm/Makefile | 8 ++++++++
3 files changed, 19 insertions(+)
diff --git a/kernel/Makefile b/kernel/Makefile
index 74ab46e2ebd1..4a597a68b8bc 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -23,6 +23,9 @@ endif
# Prevents flicker of uninteresting __do_softirq()/__local_bh_disable_ip()
# in coverage traces.
KCOV_INSTRUMENT_softirq.o := n
+# Avoid KCSAN instrumentation in softirq ("No shared variables, all the data
+# are CPU local" => assume no data-races), to reduce overhead in interrupts.
+KCSAN_SANITIZE_softirq.o = n
# These are called from save_stack_trace() on slub debug path,
# and produce insane amounts of uninteresting coverage.
KCOV_INSTRUMENT_module.o := n
@@ -30,6 +33,7 @@ KCOV_INSTRUMENT_extable.o := n
# Don't self-instrument.
KCOV_INSTRUMENT_kcov.o := n
KASAN_SANITIZE_kcov.o := n
+KCSAN_SANITIZE_kcov.o := n
CFLAGS_kcov.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector)
# cond_syscall is currently not LTO compatible
@@ -118,6 +122,7 @@ obj-$(CONFIG_RSEQ) += rseq.o
obj-$(CONFIG_GCC_PLUGIN_STACKLEAK) += stackleak.o
KASAN_SANITIZE_stackleak.o := n
+KCSAN_SANITIZE_stackleak.o := n
KCOV_INSTRUMENT_stackleak.o := n
$(obj)/configs.o: $(obj)/config_data.gz
diff --git a/kernel/sched/Makefile b/kernel/sched/Makefile
index 21fb5a5662b5..e9307a9c54e7 100644
--- a/kernel/sched/Makefile
+++ b/kernel/sched/Makefile
@@ -7,6 +7,12 @@ endif
# that is not a function of syscall inputs. E.g. involuntary context switches.
KCOV_INSTRUMENT := n
+# There are numerous races here, however, most of them 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.
+KCSAN_SANITIZE := n
+
ifneq ($(CONFIG_SCHED_OMIT_FRAME_POINTER),y)
# According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
# needed for x86 only. Why this used to be enabled for all architectures is beyond
diff --git a/mm/Makefile b/mm/Makefile
index d996846697ef..33ea0154dd2d 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -7,6 +7,14 @@ KASAN_SANITIZE_slab_common.o := n
KASAN_SANITIZE_slab.o := n
KASAN_SANITIZE_slub.o := n
+# These produce frequent data-race reports: most of them are due to races on
+# the same word but accesses to different bits of that word. Re-enable KCSAN
+# for these when we have more consensus on what to do about them.
+KCSAN_SANITIZE_slab_common.o := n
+KCSAN_SANITIZE_slab.o := n
+KCSAN_SANITIZE_slub.o := n
+KCSAN_SANITIZE_page_alloc.o := n
+
# These files are disabled because they produce non-interesting and/or
# flaky coverage that is not a function of syscall inputs. E.g. slab is out of
# free pages, or a task is migrated between nodes.
--
2.23.0.866.gb869b98d4c-goog
next prev parent reply other threads:[~2019-10-17 14:13 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-17 14:12 [PATCH v2 0/8] Add Kernel Concurrency Sanitizer (KCSAN) Marco Elver
2019-10-17 14:12 ` [PATCH v2 1/8] kcsan: Add Kernel Concurrency Sanitizer infrastructure Marco Elver
2019-10-21 13:37 ` Alexander Potapenko
2019-10-21 13:37 ` Alexander Potapenko
2019-10-21 15:54 ` Marco Elver
2019-10-21 15:54 ` Marco Elver
2019-10-21 15:54 ` Marco Elver
2019-10-22 14:11 ` Mark Rutland
2019-10-22 16:52 ` Marco Elver
2019-10-22 16:52 ` Marco Elver
2019-10-22 15:48 ` Oleg Nesterov
2019-10-22 17:42 ` Marco Elver
2019-10-22 17:42 ` Marco Elver
2019-10-23 16:24 ` Oleg Nesterov
2019-10-23 16:24 ` Oleg Nesterov
2019-10-24 11:02 ` Marco Elver
2019-10-24 11:02 ` Marco Elver
2019-10-23 9:41 ` Dmitry Vyukov
2019-10-23 9:41 ` Dmitry Vyukov
2019-10-23 9:56 ` Dmitry Vyukov
2019-10-23 9:56 ` Dmitry Vyukov
2019-10-23 10:03 ` Dmitry Vyukov
2019-10-23 10:03 ` Dmitry Vyukov
2019-10-23 10:09 ` Dmitry Vyukov
2019-10-23 10:09 ` Dmitry Vyukov
2019-10-23 10:28 ` Dmitry Vyukov
2019-10-23 10:28 ` Dmitry Vyukov
2019-10-23 11:08 ` Dmitry Vyukov
2019-10-23 11:08 ` Dmitry Vyukov
2019-10-23 11:20 ` Dmitry Vyukov
2019-10-23 11:20 ` Dmitry Vyukov
2019-10-23 12:05 ` Dmitry Vyukov
2019-10-23 12:05 ` Dmitry Vyukov
2019-10-23 12:32 ` Dmitry Vyukov
2019-10-23 12:32 ` Dmitry Vyukov
2019-10-17 14:12 ` [PATCH v2 2/8] objtool, kcsan: Add KCSAN runtime functions to whitelist Marco Elver
2019-10-21 15:15 ` Dmitry Vyukov
2019-10-21 15:15 ` Dmitry Vyukov
2019-10-21 15:43 ` Marco Elver
2019-10-21 15:43 ` Marco Elver
2019-10-17 14:13 ` Marco Elver [this message]
2019-10-17 14:13 ` [PATCH v2 4/8] seqlock, kcsan: Add annotations for KCSAN Marco Elver
2019-10-24 12:28 ` Mark Rutland
2019-10-24 14:17 ` Marco Elver
2019-10-24 14:17 ` Marco Elver
2019-10-24 16:35 ` Mark Rutland
2019-10-24 16:35 ` Mark Rutland
2019-10-24 17:09 ` Marco Elver
2019-10-24 17:09 ` Marco Elver
2019-10-17 14:13 ` [PATCH v2 5/8] seqlock: Require WRITE_ONCE surrounding raw_seqcount_barrier Marco Elver
2019-10-17 14:13 ` [PATCH v2 6/8] asm-generic, kcsan: Add KCSAN instrumentation for bitops Marco Elver
2019-10-17 14:13 ` [PATCH v2 7/8] locking/atomics, kcsan: Add KCSAN instrumentation Marco Elver
2019-10-22 12:33 ` Mark Rutland
2019-10-22 18:17 ` Marco Elver
2019-10-22 18:17 ` Marco Elver
2019-10-17 14:13 ` [PATCH v2 8/8] x86, kcsan: Enable KCSAN for x86 Marco Elver
2019-10-22 12:59 ` Mark Rutland
2019-10-22 13:02 ` Marco Elver
2019-10-22 13:02 ` Marco Elver
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191017141305.146193-4-elver@google.com \
--to=elver@google.com \
--cc=akiyks@gmail.com \
--cc=andreyknvl@google.com \
--cc=ard.biesheuvel@linaro.org \
--cc=arnd@arndb.de \
--cc=boqun.feng@gmail.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=dhowells@redhat.com \
--cc=dja@axtens.net \
--cc=dlustig@nvidia.com \
--cc=dvyukov@google.com \
--cc=glider@google.com \
--cc=hpa@zytor.com \
--cc=j.alglave@ucl.ac.uk \
--cc=joel@joelfernandes.org \
--cc=jpoimboe@redhat.com \
--cc=kasan-dev@googlegroups.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luc.maranget@inria.fr \
--cc=luto@kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=npiggin@gmail.com \
--cc=parri.andrea@gmail.com \
--cc=paulmck@linux.ibm.com \
--cc=peterz@infradead.org \
--cc=stern@rowland.harvard.edu \
--cc=tglx@linutronix.de \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.