1 2config PRINTK_TIME 3 bool "Show timing information on printks" 4 help 5 Selecting this option causes timing information to be 6 included in printk output. This allows you to measure 7 the interval between kernel operations, including bootup 8 operations. This is useful for identifying long delays 9 in kernel startup. 10 11 12config MAGIC_SYSRQ 13 bool "Magic SysRq key" 14 depends on !UML 15 help 16 If you say Y here, you will have some control over the system even 17 if the system crashes for example during kernel debugging (e.g., you 18 will be able to flush the buffer cache to disk, reboot the system 19 immediately or dump some status information). This is accomplished 20 by pressing various keys while holding SysRq (Alt+PrintScreen). It 21 also works on a serial console (on PC hardware at least), if you 22 send a BREAK and then within 5 seconds a command keypress. The 23 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y 24 unless you really know what this hack does. 25 26config UNUSED_SYMBOLS 27 bool "Enable unused/obsolete exported symbols" 28 default y if X86 29 help 30 Unused but exported symbols make the kernel needlessly bigger. For 31 that reason most of these unused exports will soon be removed. This 32 option is provided temporarily to provide a transition period in case 33 some external kernel module needs one of these symbols anyway. If you 34 encounter such a case in your module, consider if you are actually 35 using the right API. (rationale: since nobody in the kernel is using 36 this in a module, there is a pretty good chance it's actually the 37 wrong interface to use). If you really need the symbol, please send a 38 mail to the linux kernel mailing list mentioning the symbol and why 39 you really need it, and what the merge plan to the mainline kernel for 40 your module is. 41 42config DEBUG_KERNEL 43 bool "Kernel debugging" 44 help 45 Say Y here if you are developing drivers or trying to debug and 46 identify kernel problems. 47 48config LOG_BUF_SHIFT 49 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" if DEBUG_KERNEL 50 range 12 21 51 default 17 if S390 52 default 16 if X86_NUMAQ || IA64 53 default 15 if SMP 54 default 14 55 help 56 Select kernel log buffer size as a power of 2. 57 Defaults and Examples: 58 17 => 128 KB for S/390 59 16 => 64 KB for x86 NUMAQ or IA-64 60 15 => 32 KB for SMP 61 14 => 16 KB for uniprocessor 62 13 => 8 KB 63 12 => 4 KB 64 65config DETECT_SOFTLOCKUP 66 bool "Detect Soft Lockups" 67 depends on DEBUG_KERNEL 68 default y 69 help 70 Say Y here to enable the kernel to detect "soft lockups", 71 which are bugs that cause the kernel to loop in kernel 72 mode for more than 10 seconds, without giving other tasks a 73 chance to run. 74 75 When a soft-lockup is detected, the kernel will print the 76 current stack trace (which you should report), but the 77 system will stay locked up. This feature has negligible 78 overhead. 79 80 (Note that "hard lockups" are separate type of bugs that 81 can be detected via the NMI-watchdog, on platforms that 82 support it.) 83 84config SCHEDSTATS 85 bool "Collect scheduler statistics" 86 depends on DEBUG_KERNEL && PROC_FS 87 help 88 If you say Y here, additional code will be inserted into the 89 scheduler and related routines to collect statistics about 90 scheduler behavior and provide them in /proc/schedstat. These 91 stats may be useful for both tuning and debugging the scheduler 92 If you aren't debugging the scheduler or trying to tune a specific 93 application, you can say N to avoid the very slight overhead 94 this adds. 95 96config DEBUG_SLAB 97 bool "Debug slab memory allocations" 98 depends on DEBUG_KERNEL && SLAB 99 help 100 Say Y here to have the kernel do limited verification on memory 101 allocation as well as poisoning memory on free to catch use of freed 102 memory. This can make kmalloc/kfree-intensive workloads much slower. 103 104config DEBUG_SLAB_LEAK 105 bool "Memory leak debugging" 106 depends on DEBUG_SLAB 107 108config DEBUG_PREEMPT 109 bool "Debug preemptible kernel" 110 depends on DEBUG_KERNEL && PREEMPT 111 default y 112 help 113 If you say Y here then the kernel will use a debug variant of the 114 commonly used smp_processor_id() function and will print warnings 115 if kernel code uses it in a preemption-unsafe way. Also, the kernel 116 will detect preemption count underflows. 117 118config DEBUG_MUTEXES 119 bool "Mutex debugging, deadlock detection" 120 default n 121 depends on DEBUG_KERNEL 122 help 123 This allows mutex semantics violations and mutex related deadlocks 124 (lockups) to be detected and reported automatically. 125 126config DEBUG_RT_MUTEXES 127 bool "RT Mutex debugging, deadlock detection" 128 depends on DEBUG_KERNEL && RT_MUTEXES 129 help 130 This allows rt mutex semantics violations and rt mutex related 131 deadlocks (lockups) to be detected and reported automatically. 132 133config DEBUG_PI_LIST 134 bool 135 default y 136 depends on DEBUG_RT_MUTEXES 137 138config RT_MUTEX_TESTER 139 bool "Built-in scriptable tester for rt-mutexes" 140 depends on DEBUG_KERNEL && RT_MUTEXES 141 help 142 This option enables a rt-mutex tester. 143 144config DEBUG_SPINLOCK 145 bool "Spinlock debugging" 146 depends on DEBUG_KERNEL 147 help 148 Say Y here and build SMP to catch missing spinlock initialization 149 and certain other kinds of spinlock errors commonly made. This is 150 best used in conjunction with the NMI watchdog so that spinlock 151 deadlocks are also debuggable. 152 153config DEBUG_SPINLOCK_SLEEP 154 bool "Sleep-inside-spinlock checking" 155 depends on DEBUG_KERNEL 156 help 157 If you say Y here, various routines which may sleep will become very 158 noisy if they are called with a spinlock held. 159 160config DEBUG_KOBJECT 161 bool "kobject debugging" 162 depends on DEBUG_KERNEL 163 help 164 If you say Y here, some extra kobject debugging messages will be sent 165 to the syslog. 166 167config DEBUG_HIGHMEM 168 bool "Highmem debugging" 169 depends on DEBUG_KERNEL && HIGHMEM 170 help 171 This options enables addition error checking for high memory systems. 172 Disable for production systems. 173 174config DEBUG_BUGVERBOSE 175 bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED 176 depends on BUG 177 depends on ARM || ARM26 || M32R || M68K || SPARC32 || SPARC64 || X86_32 || FRV 178 default !EMBEDDED 179 help 180 Say Y here to make BUG() panics output the file name and line number 181 of the BUG call as well as the EIP and oops trace. This aids 182 debugging but costs about 70-100K of memory. 183 184config DEBUG_INFO 185 bool "Compile the kernel with debug info" 186 depends on DEBUG_KERNEL 187 help 188 If you say Y here the resulting kernel image will include 189 debugging info resulting in a larger kernel image. 190 Say Y here only if you plan to debug the kernel. 191 192 If unsure, say N. 193 194config DEBUG_FS 195 bool "Debug Filesystem" 196 depends on SYSFS 197 help 198 debugfs is a virtual file system that kernel developers use to put 199 debugging files into. Enable this option to be able to read and 200 write to these files. 201 202 If unsure, say N. 203 204config DEBUG_VM 205 bool "Debug VM" 206 depends on DEBUG_KERNEL 207 help 208 Enable this to turn on extended checks in the virtual-memory system 209 that may impact performance. 210 211 If unsure, say N. 212 213config FRAME_POINTER 214 bool "Compile the kernel with frame pointers" 215 depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML) 216 default y if DEBUG_INFO && UML 217 help 218 If you say Y here the resulting kernel image will be slightly larger 219 and slower, but it might give very useful debugging information on 220 some architectures or if you use external debuggers. 221 If you don't debug the kernel, you can say N. 222 223config UNWIND_INFO 224 bool "Compile the kernel with frame unwind information" 225 depends on !IA64 && !PARISC 226 depends on !MODULES || !(MIPS || PPC || SUPERH || V850) 227 help 228 If you say Y here the resulting kernel image will be slightly larger 229 but not slower, and it will give very useful debugging information. 230 If you don't debug the kernel, you can say N, but we may not be able 231 to solve problems without frame unwind information or frame pointers. 232 233config STACK_UNWIND 234 bool "Stack unwind support" 235 depends on UNWIND_INFO 236 depends on X86 237 help 238 This enables more precise stack traces, omitting all unrelated 239 occurrences of pointers into kernel code from the dump. 240 241config FORCED_INLINING 242 bool "Force gcc to inline functions marked 'inline'" 243 depends on DEBUG_KERNEL 244 default y 245 help 246 This option determines if the kernel forces gcc to inline the functions 247 developers have marked 'inline'. Doing so takes away freedom from gcc to 248 do what it thinks is best, which is desirable for the gcc 3.x series of 249 compilers. The gcc 4.x series have a rewritten inlining algorithm and 250 disabling this option will generate a smaller kernel there. Hopefully 251 this algorithm is so good that allowing gcc4 to make the decision can 252 become the default in the future, until then this option is there to 253 test gcc for this. 254 255config RCU_TORTURE_TEST 256 tristate "torture tests for RCU" 257 depends on DEBUG_KERNEL 258 default n 259 help 260 This option provides a kernel module that runs torture tests 261 on the RCU infrastructure. The kernel module may be built 262 after the fact on the running kernel to be tested, if desired. 263 264 Say Y here if you want RCU torture tests to start automatically 265 at boot time (you probably don't). 266 Say M if you want the RCU torture tests to build as a module. 267 Say N if you are unsure. 268