Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | From | "Paul E. McKenney" <> | Subject | [PATCH kcsan 20/29] mm, kcsan: Enable barrier instrumentation | Date | Tue, 14 Dec 2021 14:04:30 -0800 |
| |
From: Marco Elver <elver@google.com>
Some memory management calls imply memory barriers that are required to avoid false positives. For example, without the correct instrumentation, we could observe data races of the following variant:
T0 | T1 ------------------------+------------------------ | *a = 42; ---+ | kfree(a); | | | | b = kmalloc(..); // b == a <reordered> <-+ | *b = 42; // not a data race! |
Therefore, instrument memory barriers in all allocator code currently not being instrumented in a default build.
Signed-off-by: Marco Elver <elver@google.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> --- mm/Makefile | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/mm/Makefile b/mm/Makefile index d6c0042e3aa0d..7919cd7f13f2a 100644 --- a/mm/Makefile +++ b/mm/Makefile @@ -15,6 +15,8 @@ KCSAN_SANITIZE_slab_common.o := n KCSAN_SANITIZE_slab.o := n KCSAN_SANITIZE_slub.o := n KCSAN_SANITIZE_page_alloc.o := n +# But enable explicit instrumentation for memory barriers. +KCSAN_INSTRUMENT_BARRIERS := y # 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 -- 2.31.1.189.g2e36527f23
| ![\](/images/icornerr.gif) |