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