Skip to content

Commit

Permalink
dashboard/config/linux: disable most UBSAN configs
Browse files Browse the repository at this point in the history
Some UBSAN configs got enabled unintentionally just after olddefconfig.
Disable most of them as they produce lots of crashes.
Keep UBSAN_SHIFT, though, as people seem to fix these reports.

Also change smack instance to clang as that's what we actually use
for the instance. That caused some unwanted diffs in UBSAN configs
as well, as UBSAN checks depend on the target compiler.
  • Loading branch information
dvyukov committed Jan 9, 2021
1 parent 566323d commit 2c1f251
Show file tree
Hide file tree
Showing 16 changed files with 67 additions and 28 deletions.
23 changes: 20 additions & 3 deletions dashboard/config/linux/bits/kasan.yml
Expand Up @@ -13,8 +13,25 @@ config:
- SPARSEMEM_MANUAL: [-arm, -s390]

- UBSAN: [v5.8]
- UBSAN_BOUNDS: [v5.8]
- UBSAN_SANITIZE_ALL: [v5.8, -arm, -riscv]
- UBSAN_TRAP: [n, v5.8]
- UBSAN_MISC: [n, v5.8]
- UBSAN_TRAP: n
- UBSAN_MISC: n
- UBSAN_BOUNDS: [v5.8]
- UBSAN_SHIFT: [v5.11]
# Already detected well by the exception handler.
- UBSAN_DIV_ZERO: n
# Produces too many reports:
# https://groups.google.com/forum/#!msg/syzkaller-bugs/i0xhp3rFSmo/KwZ0r9IIBQAJ
- UBSAN_BOOL: n
# Produces too many reports:
# https://groups.google.com/g/syzkaller-bugs/c/b_y3xw0wvOI/m/L074F0v3BQAJ
- UBSAN_OBJECT_SIZE: n
# This does not produce any reports, which suggests that it does not work somehow.
- UBSAN_SIGNED_OVERFLOW: n
- UBSAN_UNSIGNED_OVERFLOW: n
# This does not produce any reports, which suggests that it does not work somehow.
- UBSAN_ENUM: n
# Presumably can produce lots of working-as-intended reports, but this wasn't checked.
- UBSAN_ALIGNMENT: [n, v5.8]
# Depends on STACK_VALIDATION=n which we have enabled.
- UBSAN_UNREACHABLE: n
2 changes: 1 addition & 1 deletion dashboard/config/linux/main.yml
Expand Up @@ -4,7 +4,7 @@
instances:
- upstream-apparmor-kasan: [linux-next, x86_64, gcc, lsm, apparmor, kasan, kfence]
- upstream-selinux-kasan: [linux-next, x86_64, gcc, lsm, selinux, slab, kasan, kfence]
- upstream-smack-kasan: [linux-next, x86_64, gcc, lsm, smack, kasan, kfence]
- upstream-smack-kasan: [linux-next, x86_64, clang, lsm, smack, kasan, kfence]
- upstream-kmsan: [x86_64, clang, lsm, apparmor, kmsan]
- upstream-kcsan: [upstream, x86_64, clang, lsm, apparmor, slab, kcsan]
- upstream-leak: [upstream, x86_64, gcc, lsm, apparmor, slab, kmemleak]
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-apparmor-kasan-base.config
Expand Up @@ -4895,7 +4895,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
# CONFIG_UBSAN_BOOL is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-apparmor-kasan.config
Expand Up @@ -8337,7 +8337,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
# CONFIG_UBSAN_BOOL is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-arm64-kasan-base.config
Expand Up @@ -6542,7 +6542,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_UNREACHABLE is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-arm64-kasan.config
Expand Up @@ -7578,7 +7578,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_UNREACHABLE is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-riscv64-kasan-base.config
Expand Up @@ -3406,7 +3406,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_UNREACHABLE is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-riscv64-kasan.config
Expand Up @@ -7423,7 +7423,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_UNREACHABLE is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-s390-kasan-base.config
Expand Up @@ -3177,7 +3177,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_UNREACHABLE is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-s390-kasan.config
Expand Up @@ -7158,7 +7158,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_UNREACHABLE is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-selinux-kasan-base.config
Expand Up @@ -4894,7 +4894,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
# CONFIG_UBSAN_BOOL is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-selinux-kasan.config
Expand Up @@ -8336,7 +8336,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
# CONFIG_UBSAN_BOOL is not set
Expand Down
23 changes: 17 additions & 6 deletions dashboard/config/linux/upstream-smack-kasan-base.config
Expand Up @@ -5,15 +5,16 @@
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 5.11.0-rc2 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.0-16) 10.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=100200
CONFIG_CC_VERSION_TEXT="clang version 11.0.0 (https://github.com/llvm/llvm-project.git ca2dcbd030eadbf0aa9b660efe864ff08af6e18b)"
CONFIG_GCC_VERSION=0
CONFIG_LD_VERSION=235010000
CONFIG_CLANG_VERSION=0
CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=110000
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CONSTRUCTORS=y
CONFIG_IRQ_WORK=y
Expand Down Expand Up @@ -4508,7 +4509,11 @@ CONFIG_LSM="lockdown,yama,safesetid,integrity,tomoyo,smack,bpf"
#
# Memory initialization
#
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
CONFIG_INIT_STACK_NONE=y
# CONFIG_INIT_STACK_ALL_PATTERN is not set
# CONFIG_INIT_STACK_ALL_ZERO is not set
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
# end of Memory initialization
Expand Down Expand Up @@ -4892,17 +4897,21 @@ CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
CONFIG_UBSAN=y
# CONFIG_UBSAN_TRAP is not set
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_CC_HAS_UBSAN_ARRAY_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_ARRAY_BOUNDS=y
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
# CONFIG_UBSAN_UNSIGNED_OVERFLOW is not set
# CONFIG_UBSAN_OBJECT_SIZE is not set
# CONFIG_UBSAN_BOOL is not set
# CONFIG_UBSAN_ENUM is not set
# CONFIG_UBSAN_ALIGNMENT is not set
CONFIG_UBSAN_SANITIZE_ALL=y
# CONFIG_TEST_UBSAN is not set
CONFIG_HAVE_ARCH_KCSAN=y
CONFIG_HAVE_KCSAN_COMPILER=y
# end of Generic Kernel Debugging Instruments

CONFIG_DEBUG_KERNEL=y
Expand Down Expand Up @@ -4952,11 +4961,13 @@ CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP=y
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_KASAN_SW_TAGS=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
CONFIG_KASAN=y
CONFIG_KASAN_GENERIC=y
# CONFIG_KASAN_OUTLINE is not set
CONFIG_KASAN_INLINE=y
CONFIG_KASAN_STACK_ENABLE=y
CONFIG_KASAN_STACK=1
CONFIG_KASAN_VMALLOC=y
# CONFIG_TEST_KASAN_MODULE is not set
Expand Down
23 changes: 17 additions & 6 deletions dashboard/config/linux/upstream-smack-kasan.config
Expand Up @@ -5,15 +5,16 @@
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 5.11.0-rc2 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.0-16) 10.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=100200
CONFIG_CC_VERSION_TEXT="clang version 11.0.0 (https://github.com/llvm/llvm-project.git ca2dcbd030eadbf0aa9b660efe864ff08af6e18b)"
CONFIG_GCC_VERSION=0
CONFIG_LD_VERSION=235010000
CONFIG_CLANG_VERSION=0
CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=110000
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CONSTRUCTORS=y
CONFIG_IRQ_WORK=y
Expand Down Expand Up @@ -7880,7 +7881,11 @@ CONFIG_LSM="lockdown,yama,safesetid,integrity,tomoyo,smack,bpf"
#
# Memory initialization
#
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
CONFIG_INIT_STACK_NONE=y
# CONFIG_INIT_STACK_ALL_PATTERN is not set
# CONFIG_INIT_STACK_ALL_ZERO is not set
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
# end of Memory initialization
Expand Down Expand Up @@ -8334,17 +8339,21 @@ CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
CONFIG_UBSAN=y
# CONFIG_UBSAN_TRAP is not set
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_CC_HAS_UBSAN_ARRAY_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_ARRAY_BOUNDS=y
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
# CONFIG_UBSAN_UNSIGNED_OVERFLOW is not set
# CONFIG_UBSAN_OBJECT_SIZE is not set
# CONFIG_UBSAN_BOOL is not set
# CONFIG_UBSAN_ENUM is not set
# CONFIG_UBSAN_ALIGNMENT is not set
CONFIG_UBSAN_SANITIZE_ALL=y
# CONFIG_TEST_UBSAN is not set
CONFIG_HAVE_ARCH_KCSAN=y
CONFIG_HAVE_KCSAN_COMPILER=y
# end of Generic Kernel Debugging Instruments

CONFIG_DEBUG_KERNEL=y
Expand Down Expand Up @@ -8394,11 +8403,13 @@ CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP=y
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_KASAN_SW_TAGS=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
CONFIG_KASAN=y
CONFIG_KASAN_GENERIC=y
# CONFIG_KASAN_OUTLINE is not set
CONFIG_KASAN_INLINE=y
CONFIG_KASAN_STACK_ENABLE=y
CONFIG_KASAN_STACK=1
CONFIG_KASAN_VMALLOC=y
# CONFIG_TEST_KASAN_MODULE is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-usb-base.config
Expand Up @@ -4934,7 +4934,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
# CONFIG_UBSAN_BOOL is not set
Expand Down
2 changes: 1 addition & 1 deletion dashboard/config/linux/upstream-usb.config
Expand Up @@ -7395,7 +7395,7 @@ CONFIG_UBSAN=y
CONFIG_CC_HAS_UBSAN_BOUNDS=y
CONFIG_UBSAN_BOUNDS=y
CONFIG_UBSAN_ONLY_BOUNDS=y
# CONFIG_UBSAN_SHIFT is not set
CONFIG_UBSAN_SHIFT=y
# CONFIG_UBSAN_DIV_ZERO is not set
# CONFIG_UBSAN_SIGNED_OVERFLOW is not set
# CONFIG_UBSAN_BOOL is not set
Expand Down

0 comments on commit 2c1f251

Please sign in to comment.