at v2.6.19 14 kB view raw
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 11config ENABLE_MUST_CHECK 12 bool "Enable __must_check logic" 13 default y 14 help 15 Enable the __must_check logic in the kernel build. Disable this to 16 suppress the "warning: ignoring return value of 'foo', declared with 17 attribute warn_unused_result" messages. 18 19config MAGIC_SYSRQ 20 bool "Magic SysRq key" 21 depends on !UML 22 help 23 If you say Y here, you will have some control over the system even 24 if the system crashes for example during kernel debugging (e.g., you 25 will be able to flush the buffer cache to disk, reboot the system 26 immediately or dump some status information). This is accomplished 27 by pressing various keys while holding SysRq (Alt+PrintScreen). It 28 also works on a serial console (on PC hardware at least), if you 29 send a BREAK and then within 5 seconds a command keypress. The 30 keys are documented in <file:Documentation/sysrq.txt>. Don't say Y 31 unless you really know what this hack does. 32 33config UNUSED_SYMBOLS 34 bool "Enable unused/obsolete exported symbols" 35 default y if X86 36 help 37 Unused but exported symbols make the kernel needlessly bigger. For 38 that reason most of these unused exports will soon be removed. This 39 option is provided temporarily to provide a transition period in case 40 some external kernel module needs one of these symbols anyway. If you 41 encounter such a case in your module, consider if you are actually 42 using the right API. (rationale: since nobody in the kernel is using 43 this in a module, there is a pretty good chance it's actually the 44 wrong interface to use). If you really need the symbol, please send a 45 mail to the linux kernel mailing list mentioning the symbol and why 46 you really need it, and what the merge plan to the mainline kernel for 47 your module is. 48 49config DEBUG_KERNEL 50 bool "Kernel debugging" 51 help 52 Say Y here if you are developing drivers or trying to debug and 53 identify kernel problems. 54 55config LOG_BUF_SHIFT 56 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" if DEBUG_KERNEL 57 range 12 21 58 default 17 if S390 || LOCKDEP 59 default 16 if X86_NUMAQ || IA64 60 default 15 if SMP 61 default 14 62 help 63 Select kernel log buffer size as a power of 2. 64 Defaults and Examples: 65 17 => 128 KB for S/390 66 16 => 64 KB for x86 NUMAQ or IA-64 67 15 => 32 KB for SMP 68 14 => 16 KB for uniprocessor 69 13 => 8 KB 70 12 => 4 KB 71 72config DETECT_SOFTLOCKUP 73 bool "Detect Soft Lockups" 74 depends on DEBUG_KERNEL && !S390 75 default y 76 help 77 Say Y here to enable the kernel to detect "soft lockups", 78 which are bugs that cause the kernel to loop in kernel 79 mode for more than 10 seconds, without giving other tasks a 80 chance to run. 81 82 When a soft-lockup is detected, the kernel will print the 83 current stack trace (which you should report), but the 84 system will stay locked up. This feature has negligible 85 overhead. 86 87 (Note that "hard lockups" are separate type of bugs that 88 can be detected via the NMI-watchdog, on platforms that 89 support it.) 90 91config SCHEDSTATS 92 bool "Collect scheduler statistics" 93 depends on DEBUG_KERNEL && PROC_FS 94 help 95 If you say Y here, additional code will be inserted into the 96 scheduler and related routines to collect statistics about 97 scheduler behavior and provide them in /proc/schedstat. These 98 stats may be useful for both tuning and debugging the scheduler 99 If you aren't debugging the scheduler or trying to tune a specific 100 application, you can say N to avoid the very slight overhead 101 this adds. 102 103config DEBUG_SLAB 104 bool "Debug slab memory allocations" 105 depends on DEBUG_KERNEL && SLAB 106 help 107 Say Y here to have the kernel do limited verification on memory 108 allocation as well as poisoning memory on free to catch use of freed 109 memory. This can make kmalloc/kfree-intensive workloads much slower. 110 111config DEBUG_SLAB_LEAK 112 bool "Memory leak debugging" 113 depends on DEBUG_SLAB 114 115config DEBUG_PREEMPT 116 bool "Debug preemptible kernel" 117 depends on DEBUG_KERNEL && PREEMPT && TRACE_IRQFLAGS_SUPPORT 118 default y 119 help 120 If you say Y here then the kernel will use a debug variant of the 121 commonly used smp_processor_id() function and will print warnings 122 if kernel code uses it in a preemption-unsafe way. Also, the kernel 123 will detect preemption count underflows. 124 125config DEBUG_RT_MUTEXES 126 bool "RT Mutex debugging, deadlock detection" 127 depends on DEBUG_KERNEL && RT_MUTEXES 128 help 129 This allows rt mutex semantics violations and rt mutex related 130 deadlocks (lockups) to be detected and reported automatically. 131 132config DEBUG_PI_LIST 133 bool 134 default y 135 depends on DEBUG_RT_MUTEXES 136 137config RT_MUTEX_TESTER 138 bool "Built-in scriptable tester for rt-mutexes" 139 depends on DEBUG_KERNEL && RT_MUTEXES 140 help 141 This option enables a rt-mutex tester. 142 143config DEBUG_SPINLOCK 144 bool "Spinlock and rw-lock debugging: basic checks" 145 depends on DEBUG_KERNEL 146 help 147 Say Y here and build SMP to catch missing spinlock initialization 148 and certain other kinds of spinlock errors commonly made. This is 149 best used in conjunction with the NMI watchdog so that spinlock 150 deadlocks are also debuggable. 151 152config DEBUG_MUTEXES 153 bool "Mutex debugging: basic checks" 154 depends on DEBUG_KERNEL 155 help 156 This feature allows mutex semantics violations to be detected and 157 reported. 158 159config DEBUG_RWSEMS 160 bool "RW-sem debugging: basic checks" 161 depends on DEBUG_KERNEL 162 help 163 This feature allows read-write semaphore semantics violations to 164 be detected and reported. 165 166config DEBUG_LOCK_ALLOC 167 bool "Lock debugging: detect incorrect freeing of live locks" 168 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 169 select DEBUG_SPINLOCK 170 select DEBUG_MUTEXES 171 select DEBUG_RWSEMS 172 select LOCKDEP 173 help 174 This feature will check whether any held lock (spinlock, rwlock, 175 mutex or rwsem) is incorrectly freed by the kernel, via any of the 176 memory-freeing routines (kfree(), kmem_cache_free(), free_pages(), 177 vfree(), etc.), whether a live lock is incorrectly reinitialized via 178 spin_lock_init()/mutex_init()/etc., or whether there is any lock 179 held during task exit. 180 181config PROVE_LOCKING 182 bool "Lock debugging: prove locking correctness" 183 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 184 select LOCKDEP 185 select DEBUG_SPINLOCK 186 select DEBUG_MUTEXES 187 select DEBUG_RWSEMS 188 select DEBUG_LOCK_ALLOC 189 default n 190 help 191 This feature enables the kernel to prove that all locking 192 that occurs in the kernel runtime is mathematically 193 correct: that under no circumstance could an arbitrary (and 194 not yet triggered) combination of observed locking 195 sequences (on an arbitrary number of CPUs, running an 196 arbitrary number of tasks and interrupt contexts) cause a 197 deadlock. 198 199 In short, this feature enables the kernel to report locking 200 related deadlocks before they actually occur. 201 202 The proof does not depend on how hard and complex a 203 deadlock scenario would be to trigger: how many 204 participant CPUs, tasks and irq-contexts would be needed 205 for it to trigger. The proof also does not depend on 206 timing: if a race and a resulting deadlock is possible 207 theoretically (no matter how unlikely the race scenario 208 is), it will be proven so and will immediately be 209 reported by the kernel (once the event is observed that 210 makes the deadlock theoretically possible). 211 212 If a deadlock is impossible (i.e. the locking rules, as 213 observed by the kernel, are mathematically correct), the 214 kernel reports nothing. 215 216 NOTE: this feature can also be enabled for rwlocks, mutexes 217 and rwsems - in which case all dependencies between these 218 different locking variants are observed and mapped too, and 219 the proof of observed correctness is also maintained for an 220 arbitrary combination of these separate locking variants. 221 222 For more details, see Documentation/lockdep-design.txt. 223 224config LOCKDEP 225 bool 226 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 227 select STACKTRACE 228 select FRAME_POINTER if !X86 229 select KALLSYMS 230 select KALLSYMS_ALL 231 232config DEBUG_LOCKDEP 233 bool "Lock dependency engine debugging" 234 depends on DEBUG_KERNEL && LOCKDEP 235 help 236 If you say Y here, the lock dependency engine will do 237 additional runtime checks to debug itself, at the price 238 of more runtime overhead. 239 240config TRACE_IRQFLAGS 241 depends on DEBUG_KERNEL 242 bool 243 default y 244 depends on TRACE_IRQFLAGS_SUPPORT 245 depends on PROVE_LOCKING 246 247config DEBUG_SPINLOCK_SLEEP 248 bool "Spinlock debugging: sleep-inside-spinlock checking" 249 depends on DEBUG_KERNEL 250 help 251 If you say Y here, various routines which may sleep will become very 252 noisy if they are called with a spinlock held. 253 254config DEBUG_LOCKING_API_SELFTESTS 255 bool "Locking API boot-time self-tests" 256 depends on DEBUG_KERNEL 257 help 258 Say Y here if you want the kernel to run a short self-test during 259 bootup. The self-test checks whether common types of locking bugs 260 are detected by debugging mechanisms or not. (if you disable 261 lock debugging then those bugs wont be detected of course.) 262 The following locking APIs are covered: spinlocks, rwlocks, 263 mutexes and rwsems. 264 265config STACKTRACE 266 bool 267 depends on DEBUG_KERNEL 268 depends on STACKTRACE_SUPPORT 269 270config DEBUG_KOBJECT 271 bool "kobject debugging" 272 depends on DEBUG_KERNEL 273 help 274 If you say Y here, some extra kobject debugging messages will be sent 275 to the syslog. 276 277config DEBUG_HIGHMEM 278 bool "Highmem debugging" 279 depends on DEBUG_KERNEL && HIGHMEM 280 help 281 This options enables addition error checking for high memory systems. 282 Disable for production systems. 283 284config DEBUG_BUGVERBOSE 285 bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED 286 depends on BUG 287 depends on ARM || ARM26 || AVR32 || M32R || M68K || SPARC32 || SPARC64 || X86_32 || FRV || SUPERH 288 default !EMBEDDED 289 help 290 Say Y here to make BUG() panics output the file name and line number 291 of the BUG call as well as the EIP and oops trace. This aids 292 debugging but costs about 70-100K of memory. 293 294config DEBUG_INFO 295 bool "Compile the kernel with debug info" 296 depends on DEBUG_KERNEL 297 help 298 If you say Y here the resulting kernel image will include 299 debugging info resulting in a larger kernel image. 300 Say Y here only if you plan to debug the kernel. 301 302 If unsure, say N. 303 304config DEBUG_FS 305 bool "Debug Filesystem" 306 depends on SYSFS 307 help 308 debugfs is a virtual file system that kernel developers use to put 309 debugging files into. Enable this option to be able to read and 310 write to these files. 311 312 If unsure, say N. 313 314config DEBUG_VM 315 bool "Debug VM" 316 depends on DEBUG_KERNEL 317 help 318 Enable this to turn on extended checks in the virtual-memory system 319 that may impact performance. 320 321 If unsure, say N. 322 323config DEBUG_LIST 324 bool "Debug linked list manipulation" 325 depends on DEBUG_KERNEL 326 help 327 Enable this to turn on extended checks in the linked-list 328 walking routines. 329 330 If unsure, say N. 331 332config FRAME_POINTER 333 bool "Compile the kernel with frame pointers" 334 depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390 || AVR32 || SUPERH) 335 default y if DEBUG_INFO && UML 336 help 337 If you say Y here the resulting kernel image will be slightly larger 338 and slower, but it might give very useful debugging information on 339 some architectures or if you use external debuggers. 340 If you don't debug the kernel, you can say N. 341 342config UNWIND_INFO 343 bool "Compile the kernel with frame unwind information" 344 depends on !IA64 && !PARISC && !ARM 345 depends on !MODULES || !(MIPS || PPC || SUPERH || V850) 346 help 347 If you say Y here the resulting kernel image will be slightly larger 348 but not slower, and it will give very useful debugging information. 349 If you don't debug the kernel, you can say N, but we may not be able 350 to solve problems without frame unwind information or frame pointers. 351 352config STACK_UNWIND 353 bool "Stack unwind support" 354 depends on UNWIND_INFO 355 depends on X86 356 help 357 This enables more precise stack traces, omitting all unrelated 358 occurrences of pointers into kernel code from the dump. 359 360config FORCED_INLINING 361 bool "Force gcc to inline functions marked 'inline'" 362 depends on DEBUG_KERNEL 363 default y 364 help 365 This option determines if the kernel forces gcc to inline the functions 366 developers have marked 'inline'. Doing so takes away freedom from gcc to 367 do what it thinks is best, which is desirable for the gcc 3.x series of 368 compilers. The gcc 4.x series have a rewritten inlining algorithm and 369 disabling this option will generate a smaller kernel there. Hopefully 370 this algorithm is so good that allowing gcc4 to make the decision can 371 become the default in the future, until then this option is there to 372 test gcc for this. 373 374config HEADERS_CHECK 375 bool "Run 'make headers_check' when building vmlinux" 376 depends on !UML 377 help 378 This option will extract the user-visible kernel headers whenever 379 building the kernel, and will run basic sanity checks on them to 380 ensure that exported files do not attempt to include files which 381 were not exported, etc. 382 383 If you're making modifications to header files which are 384 relevant for userspace, say 'Y', and check the headers 385 exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in 386 your build tree), to make sure they're suitable. 387 388config RCU_TORTURE_TEST 389 tristate "torture tests for RCU" 390 depends on DEBUG_KERNEL 391 default n 392 help 393 This option provides a kernel module that runs torture tests 394 on the RCU infrastructure. The kernel module may be built 395 after the fact on the running kernel to be tested, if desired. 396 397 Say Y here if you want RCU torture tests to start automatically 398 at boot time (you probably don't). 399 Say M if you want the RCU torture tests to build as a module. 400 Say N if you are unsure. 401 402config LKDTM 403 tristate "Linux Kernel Dump Test Tool Module" 404 depends on KPROBES 405 default n 406 help 407 This module enables testing of the different dumping mechanisms by 408 inducing system failures at predefined crash points. 409 If you don't need it: say N 410 Choose M here to compile this code as a module. The module will be 411 called lkdtm. 412 413 Documentation on how to use the module can be found in 414 drivers/misc/lkdtm.c