From 418a00eb23ef6f6d2f60255c6185520ceaa2d0db Mon Sep 17 00:00:00 2001 From: Marco Elver Date: Wed, 20 Oct 2021 10:57:49 +0200 Subject: dashboard/config/linux: kcsan: do not pretend writes are atomic Do not pretend writes are atomic. While this may currently be a prevailing preference in the community, it does hide more interesting bugs [1]. Since we moderate data races anyway, and are still drowning in data races, a few more won't hurt. What it does help with, however, is getting better signals about harmful data races. Most of the read/write data races provide weak signals, but write/write data races should provide a stronger harmfulness signal [1], which will help us in selecting data races to investigate further. [1] https://googleprojectzero.blogspot.com/2021/10/how-simple-linux-kernel-memory.html --- dashboard/config/linux/bits/kcsan.yml | 2 +- dashboard/config/linux/upstream-kcsan.config | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dashboard/config/linux/bits/kcsan.yml b/dashboard/config/linux/bits/kcsan.yml index 6f7670c0d..7a8dea258 100644 --- a/dashboard/config/linux/bits/kcsan.yml +++ b/dashboard/config/linux/bits/kcsan.yml @@ -13,6 +13,6 @@ config: - KCSAN_SKIP_WATCH_RANDOMIZE - KCSAN_REPORT_RACE_UNKNOWN_ORIGIN: n - KCSAN_REPORT_VALUE_CHANGE_ONLY - - KCSAN_ASSUME_PLAIN_WRITES_ATOMIC + - KCSAN_ASSUME_PLAIN_WRITES_ATOMIC: n - KCSAN_IGNORE_ATOMICS - KCSAN_PERMISSIVE: [v5.14] # TODO: change to 5.15 once released diff --git a/dashboard/config/linux/upstream-kcsan.config b/dashboard/config/linux/upstream-kcsan.config index 0c18e332a..78088b954 100644 --- a/dashboard/config/linux/upstream-kcsan.config +++ b/dashboard/config/linux/upstream-kcsan.config @@ -12,7 +12,7 @@ CONFIG_CLANG_VERSION=110001 CONFIG_AS_IS_LLVM=y CONFIG_AS_VERSION=110001 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=23502 +CONFIG_LD_VERSION=23700 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y @@ -4836,6 +4836,7 @@ CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y # CONFIG_DEBUG_INFO_DWARF4 is not set # CONFIG_DEBUG_INFO_DWARF5 is not set # CONFIG_DEBUG_INFO_BTF is not set +CONFIG_PAHOLE_HAS_SPLIT_BTF=y # CONFIG_GDB_SCRIPTS is not set CONFIG_FRAME_WARN=2048 # CONFIG_STRIP_ASM_SYMS is not set @@ -4875,7 +4876,7 @@ CONFIG_KCSAN_REPORT_ONCE_IN_MS=3000 # CONFIG_KCSAN_REPORT_RACE_UNKNOWN_ORIGIN is not set # CONFIG_KCSAN_STRICT is not set CONFIG_KCSAN_REPORT_VALUE_CHANGE_ONLY=y -CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC=y +# CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC is not set CONFIG_KCSAN_IGNORE_ATOMICS=y CONFIG_KCSAN_PERMISSIVE=y # end of Generic Kernel Debugging Instruments -- cgit mrf-deployment