aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Elver <elver@google.com>2021-10-20 10:57:49 +0200
committerMarco Elver <me@marcoelver.com>2021-10-20 11:44:15 +0200
commit418a00eb23ef6f6d2f60255c6185520ceaa2d0db (patch)
treee15ea6387d2c5237ec5126e7eeafaddc16c0f8e4
parentb541beac5b929237d926ac9a616aad960822744a (diff)
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
-rw-r--r--dashboard/config/linux/bits/kcsan.yml2
-rw-r--r--dashboard/config/linux/upstream-kcsan.config5
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