xref: /linux/kernel/configs/debug.config (revision e7d759f31ca295d589f7420719c311870bb3166f)
1# Help: Debugging for CI systems and finding regressions
2#
3# The config is based on running daily CI for enterprise Linux distros to
4# seek regressions on linux-next builds on different bare-metal and virtual
5# platforms. It can be used for example,
6#
7# $ make ARCH=arm64 defconfig debug.config
8#
9# Keep alphabetically sorted inside each section.
10#
11# printk and dmesg options
12#
13CONFIG_DEBUG_BUGVERBOSE=y
14CONFIG_DYNAMIC_DEBUG=y
15CONFIG_PRINTK_CALLER=y
16CONFIG_PRINTK_TIME=y
17CONFIG_SYMBOLIC_ERRNAME=y
18#
19# Compile-time checks and compiler options
20#
21CONFIG_DEBUG_INFO=y
22CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
23CONFIG_DEBUG_SECTION_MISMATCH=y
24CONFIG_FRAME_WARN=2048
25CONFIG_SECTION_MISMATCH_WARN_ONLY=y
26#
27# Generic Kernel Debugging Instruments
28#
29# CONFIG_UBSAN_ALIGNMENT is not set
30# CONFIG_UBSAN_DIV_ZERO is not set
31# CONFIG_UBSAN_TRAP is not set
32# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
33CONFIG_DEBUG_FS=y
34CONFIG_DEBUG_FS_ALLOW_ALL=y
35CONFIG_DEBUG_IRQFLAGS=y
36CONFIG_UBSAN=y
37CONFIG_UBSAN_BOOL=y
38CONFIG_UBSAN_BOUNDS=y
39CONFIG_UBSAN_ENUM=y
40CONFIG_UBSAN_SHIFT=y
41CONFIG_UBSAN_UNREACHABLE=y
42#
43# Memory Debugging
44#
45# CONFIG_DEBUG_PAGEALLOC is not set
46# CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF is not set
47# CONFIG_DEBUG_RODATA_TEST is not set
48# CONFIG_DEBUG_WX is not set
49# CONFIG_KFENCE is not set
50# CONFIG_PAGE_POISONING is not set
51# CONFIG_SLUB_STATS is not set
52CONFIG_PAGE_EXTENSION=y
53CONFIG_PAGE_OWNER=y
54CONFIG_DEBUG_KMEMLEAK=y
55CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN=y
56CONFIG_DEBUG_OBJECTS=y
57CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
58CONFIG_DEBUG_OBJECTS_FREE=y
59CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
60CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
61CONFIG_DEBUG_OBJECTS_TIMERS=y
62CONFIG_DEBUG_OBJECTS_WORK=y
63CONFIG_DEBUG_PER_CPU_MAPS=y
64CONFIG_DEBUG_STACK_USAGE=y
65CONFIG_DEBUG_VIRTUAL=y
66CONFIG_DEBUG_VM=y
67CONFIG_DEBUG_VM_PGFLAGS=y
68CONFIG_DEBUG_VM_RB=y
69CONFIG_DEBUG_VM_VMACACHE=y
70CONFIG_GENERIC_PTDUMP=y
71CONFIG_KASAN=y
72CONFIG_KASAN_GENERIC=y
73CONFIG_KASAN_INLINE=y
74CONFIG_KASAN_VMALLOC=y
75CONFIG_PTDUMP_DEBUGFS=y
76CONFIG_SCHED_STACK_END_CHECK=y
77CONFIG_SLUB_DEBUG_ON=y
78#
79# Debug Oops, Lockups and Hangs
80#
81# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
82# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
83CONFIG_DEBUG_ATOMIC_SLEEP=y
84CONFIG_DETECT_HUNG_TASK=y
85CONFIG_PANIC_ON_OOPS=y
86CONFIG_PANIC_TIMEOUT=0
87CONFIG_SOFTLOCKUP_DETECTOR=y
88#
89# Lock Debugging (spinlocks, mutexes, etc...)
90#
91# CONFIG_PROVE_RAW_LOCK_NESTING is not set
92CONFIG_PROVE_LOCKING=y
93#
94# Debug kernel data structures
95#
96CONFIG_BUG_ON_DATA_CORRUPTION=y
97#
98# RCU Debugging
99#
100CONFIG_PROVE_RCU=y
101CONFIG_PROVE_RCU_LIST=y
102#
103# Tracers
104#
105CONFIG_BRANCH_PROFILE_NONE=y
106CONFIG_DYNAMIC_FTRACE=y
107CONFIG_FTRACE=y
108CONFIG_FUNCTION_TRACER=y
109