xref: /linux/kernel/configs/debug.config (revision b9c8fc2caea6ff7e45c6942de8fee53515c66b34)
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
32CONFIG_DEBUG_FS=y
33CONFIG_DEBUG_FS_ALLOW_ALL=y
34CONFIG_DEBUG_IRQFLAGS=y
35CONFIG_UBSAN=y
36CONFIG_UBSAN_BOOL=y
37CONFIG_UBSAN_BOUNDS=y
38CONFIG_UBSAN_ENUM=y
39CONFIG_UBSAN_SHIFT=y
40CONFIG_UBSAN_UNREACHABLE=y
41#
42# Networking Debugging
43#
44CONFIG_NET_DEV_REFCNT_TRACKER=y
45CONFIG_NET_NS_REFCNT_TRACKER=y
46CONFIG_DEBUG_NET=y
47#
48# Memory Debugging
49#
50# CONFIG_DEBUG_PAGEALLOC is not set
51# CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF is not set
52# CONFIG_DEBUG_RODATA_TEST is not set
53# CONFIG_DEBUG_WX is not set
54# CONFIG_KFENCE is not set
55# CONFIG_PAGE_POISONING is not set
56# CONFIG_SLUB_STATS is not set
57CONFIG_PAGE_EXTENSION=y
58CONFIG_PAGE_OWNER=y
59CONFIG_DEBUG_KMEMLEAK=y
60CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN=y
61CONFIG_DEBUG_OBJECTS=y
62CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
63CONFIG_DEBUG_OBJECTS_FREE=y
64CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
65CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
66CONFIG_DEBUG_OBJECTS_TIMERS=y
67CONFIG_DEBUG_OBJECTS_WORK=y
68CONFIG_DEBUG_PER_CPU_MAPS=y
69CONFIG_DEBUG_STACK_USAGE=y
70CONFIG_DEBUG_VIRTUAL=y
71CONFIG_DEBUG_VM=y
72CONFIG_DEBUG_VM_PGFLAGS=y
73CONFIG_DEBUG_VM_RB=y
74CONFIG_DEBUG_VM_VMACACHE=y
75CONFIG_KASAN=y
76CONFIG_KASAN_GENERIC=y
77CONFIG_KASAN_INLINE=y
78CONFIG_KASAN_VMALLOC=y
79CONFIG_PTDUMP_DEBUGFS=y
80CONFIG_SCHED_STACK_END_CHECK=y
81CONFIG_SLUB_DEBUG_ON=y
82#
83# Debug Oops, Lockups and Hangs
84#
85CONFIG_BOOTPARAM_HUNG_TASK_PANIC=0
86CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=0
87CONFIG_DEBUG_ATOMIC_SLEEP=y
88CONFIG_DETECT_HUNG_TASK=y
89CONFIG_PANIC_ON_OOPS=y
90CONFIG_PANIC_TIMEOUT=0
91CONFIG_SOFTLOCKUP_DETECTOR=y
92#
93# Lock Debugging (spinlocks, mutexes, etc...)
94#
95# CONFIG_PROVE_RAW_LOCK_NESTING is not set
96CONFIG_PROVE_LOCKING=y
97#
98# Debug kernel data structures
99#
100CONFIG_BUG_ON_DATA_CORRUPTION=y
101#
102# RCU Debugging
103#
104CONFIG_RCU_EXPERT=y
105CONFIG_PROVE_RCU=y
106CONFIG_PROVE_RCU_LIST=y
107#
108# Tracers
109#
110CONFIG_BRANCH_PROFILE_NONE=y
111CONFIG_DYNAMIC_FTRACE=y
112CONFIG_FTRACE=y
113CONFIG_FUNCTION_TRACER=y
114#
115# Preemption
116#
117CONFIG_DEBUG_PREEMPT=y
118CONFIG_PREEMPT=y
119