11da177e4SLinus Torvalds 21da177e4SLinus Torvaldsconfig PRINTK_TIME 31da177e4SLinus Torvalds bool "Show timing information on printks" 4d3b8b6e5SRandy Dunlap depends on PRINTK 51da177e4SLinus Torvalds help 61da177e4SLinus Torvalds Selecting this option causes timing information to be 71da177e4SLinus Torvalds included in printk output. This allows you to measure 81da177e4SLinus Torvalds the interval between kernel operations, including bootup 91da177e4SLinus Torvalds operations. This is useful for identifying long delays 101da177e4SLinus Torvalds in kernel startup. 111da177e4SLinus Torvalds 12de488443SJeff Garzikconfig ENABLE_WARN_DEPRECATED 13de488443SJeff Garzik bool "Enable __deprecated logic" 14de488443SJeff Garzik default y 15de488443SJeff Garzik help 16de488443SJeff Garzik Enable the __deprecated logic in the kernel build. 17de488443SJeff Garzik Disable this to suppress the "warning: 'foo' is deprecated 18de488443SJeff Garzik (declared at kernel/power/somefile.c:1234)" messages. 19de488443SJeff Garzik 20cebc04baSAndrew Mortonconfig ENABLE_MUST_CHECK 21cebc04baSAndrew Morton bool "Enable __must_check logic" 22cebc04baSAndrew Morton default y 23cebc04baSAndrew Morton help 24cebc04baSAndrew Morton Enable the __must_check logic in the kernel build. Disable this to 25cebc04baSAndrew Morton suppress the "warning: ignoring return value of 'foo', declared with 26cebc04baSAndrew Morton attribute warn_unused_result" messages. 271da177e4SLinus Torvalds 2835bb5b1eSAndi Kleenconfig FRAME_WARN 2935bb5b1eSAndi Kleen int "Warn for stack frames larger than (needs gcc 4.4)" 3035bb5b1eSAndi Kleen range 0 8192 3135bb5b1eSAndi Kleen default 1024 if !64BIT 3235bb5b1eSAndi Kleen default 2048 if 64BIT 3335bb5b1eSAndi Kleen help 3435bb5b1eSAndi Kleen Tell gcc to warn at build time for stack frames larger than this. 3535bb5b1eSAndi Kleen Setting this too low will cause a lot of warnings. 3635bb5b1eSAndi Kleen Setting it to 0 disables the warning. 3735bb5b1eSAndi Kleen Requires gcc 4.4 3835bb5b1eSAndi Kleen 391da177e4SLinus Torvaldsconfig MAGIC_SYSRQ 401da177e4SLinus Torvalds bool "Magic SysRq key" 41f346f4b3SAdrian Bunk depends on !UML 421da177e4SLinus Torvalds help 431da177e4SLinus Torvalds If you say Y here, you will have some control over the system even 441da177e4SLinus Torvalds if the system crashes for example during kernel debugging (e.g., you 451da177e4SLinus Torvalds will be able to flush the buffer cache to disk, reboot the system 461da177e4SLinus Torvalds immediately or dump some status information). This is accomplished 471da177e4SLinus Torvalds by pressing various keys while holding SysRq (Alt+PrintScreen). It 481da177e4SLinus Torvalds also works on a serial console (on PC hardware at least), if you 491da177e4SLinus Torvalds send a BREAK and then within 5 seconds a command keypress. The 501da177e4SLinus Torvalds keys are documented in <file:Documentation/sysrq.txt>. Don't say Y 511da177e4SLinus Torvalds unless you really know what this hack does. 521da177e4SLinus Torvalds 53f71d20e9SArjan van de Venconfig UNUSED_SYMBOLS 54f71d20e9SArjan van de Ven bool "Enable unused/obsolete exported symbols" 55f71d20e9SArjan van de Ven default y if X86 56f71d20e9SArjan van de Ven help 57f71d20e9SArjan van de Ven Unused but exported symbols make the kernel needlessly bigger. For 58f71d20e9SArjan van de Ven that reason most of these unused exports will soon be removed. This 59f71d20e9SArjan van de Ven option is provided temporarily to provide a transition period in case 60f71d20e9SArjan van de Ven some external kernel module needs one of these symbols anyway. If you 61f71d20e9SArjan van de Ven encounter such a case in your module, consider if you are actually 62f71d20e9SArjan van de Ven using the right API. (rationale: since nobody in the kernel is using 63f71d20e9SArjan van de Ven this in a module, there is a pretty good chance it's actually the 64f71d20e9SArjan van de Ven wrong interface to use). If you really need the symbol, please send a 65f71d20e9SArjan van de Ven mail to the linux kernel mailing list mentioning the symbol and why 66f71d20e9SArjan van de Ven you really need it, and what the merge plan to the mainline kernel for 67f71d20e9SArjan van de Ven your module is. 68f71d20e9SArjan van de Ven 69bf4735a4SDon Mullisconfig DEBUG_FS 70bf4735a4SDon Mullis bool "Debug Filesystem" 71bf4735a4SDon Mullis depends on SYSFS 72bf4735a4SDon Mullis help 73bf4735a4SDon Mullis debugfs is a virtual file system that kernel developers use to put 74bf4735a4SDon Mullis debugging files into. Enable this option to be able to read and 75bf4735a4SDon Mullis write to these files. 76bf4735a4SDon Mullis 77ff543332SRobert P. J. Day For detailed documentation on the debugfs API, see 78ff543332SRobert P. J. Day Documentation/DocBook/filesystems. 79ff543332SRobert P. J. Day 80bf4735a4SDon Mullis If unsure, say N. 81bf4735a4SDon Mullis 82bf4735a4SDon Mullisconfig HEADERS_CHECK 83bf4735a4SDon Mullis bool "Run 'make headers_check' when building vmlinux" 84bf4735a4SDon Mullis depends on !UML 85bf4735a4SDon Mullis help 86bf4735a4SDon Mullis This option will extract the user-visible kernel headers whenever 87bf4735a4SDon Mullis building the kernel, and will run basic sanity checks on them to 88bf4735a4SDon Mullis ensure that exported files do not attempt to include files which 89bf4735a4SDon Mullis were not exported, etc. 90bf4735a4SDon Mullis 91bf4735a4SDon Mullis If you're making modifications to header files which are 92bf4735a4SDon Mullis relevant for userspace, say 'Y', and check the headers 93bf4735a4SDon Mullis exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in 94bf4735a4SDon Mullis your build tree), to make sure they're suitable. 95bf4735a4SDon Mullis 9691341d4bSSam Ravnborgconfig DEBUG_SECTION_MISMATCH 9791341d4bSSam Ravnborg bool "Enable full Section mismatch analysis" 98e5f95c8bSSam Ravnborg depends on UNDEFINED 99fa2144baSSam Ravnborg # This option is on purpose disabled for now. 100fa2144baSSam Ravnborg # It will be enabled when we are down to a resonable number 101fa2144baSSam Ravnborg # of section mismatch warnings (< 10 for an allyesconfig build) 10291341d4bSSam Ravnborg help 10391341d4bSSam Ravnborg The section mismatch analysis checks if there are illegal 10491341d4bSSam Ravnborg references from one section to another section. 10591341d4bSSam Ravnborg Linux will during link or during runtime drop some sections 10691341d4bSSam Ravnborg and any use of code/data previously in these sections will 10791341d4bSSam Ravnborg most likely result in an oops. 10891341d4bSSam Ravnborg In the code functions and variables are annotated with 10991341d4bSSam Ravnborg __init, __devinit etc. (see full list in include/linux/init.h) 110d6fbfa4fSGeert Uytterhoeven which results in the code/data being placed in specific sections. 111d6fbfa4fSGeert Uytterhoeven The section mismatch analysis is always done after a full 112d6fbfa4fSGeert Uytterhoeven kernel build but enabling this option will in addition 11391341d4bSSam Ravnborg do the following: 11491341d4bSSam Ravnborg - Add the option -fno-inline-functions-called-once to gcc 11591341d4bSSam Ravnborg When inlining a function annotated __init in a non-init 116d6fbfa4fSGeert Uytterhoeven function we would lose the section information and thus 11791341d4bSSam Ravnborg the analysis would not catch the illegal reference. 118d6fbfa4fSGeert Uytterhoeven This option tells gcc to inline less but will also 11991341d4bSSam Ravnborg result in a larger kernel. 12091341d4bSSam Ravnborg - Run the section mismatch analysis for each module/built-in.o 12191341d4bSSam Ravnborg When we run the section mismatch analysis on vmlinux.o we 122d6fbfa4fSGeert Uytterhoeven lose valueble information about where the mismatch was 12391341d4bSSam Ravnborg introduced. 12491341d4bSSam Ravnborg Running the analysis for each module/built-in.o file 12591341d4bSSam Ravnborg will tell where the mismatch happens much closer to the 12691341d4bSSam Ravnborg source. The drawback is that we will report the same 12791341d4bSSam Ravnborg mismatch at least twice. 128588ccd73SSam Ravnborg - Enable verbose reporting from modpost to help solving 129588ccd73SSam Ravnborg the section mismatches reported. 13091341d4bSSam Ravnborg 131f346f4b3SAdrian Bunkconfig DEBUG_KERNEL 132f346f4b3SAdrian Bunk bool "Kernel debugging" 133f346f4b3SAdrian Bunk help 134f346f4b3SAdrian Bunk Say Y here if you are developing drivers or trying to debug and 135f346f4b3SAdrian Bunk identify kernel problems. 136f346f4b3SAdrian Bunk 137a304e1b8SDavid Woodhouseconfig DEBUG_SHIRQ 138a304e1b8SDavid Woodhouse bool "Debug shared IRQ handlers" 139a304e1b8SDavid Woodhouse depends on DEBUG_KERNEL && GENERIC_HARDIRQS 140a304e1b8SDavid Woodhouse help 141a304e1b8SDavid Woodhouse Enable this to generate a spurious interrupt as soon as a shared 142a304e1b8SDavid Woodhouse interrupt handler is registered, and just before one is deregistered. 143a304e1b8SDavid Woodhouse Drivers ought to be able to handle interrupts coming in at those 144a304e1b8SDavid Woodhouse points; some don't and need to be caught. 145a304e1b8SDavid Woodhouse 1468446f1d3SIngo Molnarconfig DETECT_SOFTLOCKUP 1478446f1d3SIngo Molnar bool "Detect Soft Lockups" 148dea20a3fSHeiko Carstens depends on DEBUG_KERNEL && !S390 1498446f1d3SIngo Molnar default y 1508446f1d3SIngo Molnar help 1518446f1d3SIngo Molnar Say Y here to enable the kernel to detect "soft lockups", 1528446f1d3SIngo Molnar which are bugs that cause the kernel to loop in kernel 1539c44bc03SIngo Molnar mode for more than 60 seconds, without giving other tasks a 1548446f1d3SIngo Molnar chance to run. 1558446f1d3SIngo Molnar 1568446f1d3SIngo Molnar When a soft-lockup is detected, the kernel will print the 1578446f1d3SIngo Molnar current stack trace (which you should report), but the 1588446f1d3SIngo Molnar system will stay locked up. This feature has negligible 1598446f1d3SIngo Molnar overhead. 1608446f1d3SIngo Molnar 1618446f1d3SIngo Molnar (Note that "hard lockups" are separate type of bugs that 1628446f1d3SIngo Molnar can be detected via the NMI-watchdog, on platforms that 1638446f1d3SIngo Molnar support it.) 1648446f1d3SIngo Molnar 1659c44bc03SIngo Molnarconfig BOOTPARAM_SOFTLOCKUP_PANIC 1669c44bc03SIngo Molnar bool "Panic (Reboot) On Soft Lockups" 1679c44bc03SIngo Molnar depends on DETECT_SOFTLOCKUP 1689c44bc03SIngo Molnar help 1699c44bc03SIngo Molnar Say Y here to enable the kernel to panic on "soft lockups", 1709c44bc03SIngo Molnar which are bugs that cause the kernel to loop in kernel 1719c44bc03SIngo Molnar mode for more than 60 seconds, without giving other tasks a 1729c44bc03SIngo Molnar chance to run. 1739c44bc03SIngo Molnar 1749c44bc03SIngo Molnar The panic can be used in combination with panic_timeout, 1759c44bc03SIngo Molnar to cause the system to reboot automatically after a 1769c44bc03SIngo Molnar lockup has been detected. This feature is useful for 1779c44bc03SIngo Molnar high-availability systems that have uptime guarantees and 1789c44bc03SIngo Molnar where a lockup must be resolved ASAP. 1799c44bc03SIngo Molnar 1809c44bc03SIngo Molnar Say N if unsure. 1819c44bc03SIngo Molnar 1829c44bc03SIngo Molnarconfig BOOTPARAM_SOFTLOCKUP_PANIC_VALUE 1839c44bc03SIngo Molnar int 1849c44bc03SIngo Molnar depends on DETECT_SOFTLOCKUP 1859c44bc03SIngo Molnar range 0 1 1869c44bc03SIngo Molnar default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC 1879c44bc03SIngo Molnar default 1 if BOOTPARAM_SOFTLOCKUP_PANIC 1889c44bc03SIngo Molnar 189b642b6d3SIngo Molnarconfig SCHED_DEBUG 190b642b6d3SIngo Molnar bool "Collect scheduler debugging info" 191b642b6d3SIngo Molnar depends on DEBUG_KERNEL && PROC_FS 192b642b6d3SIngo Molnar default y 193b642b6d3SIngo Molnar help 194b642b6d3SIngo Molnar If you say Y here, the /proc/sched_debug file will be provided 195b642b6d3SIngo Molnar that can help debug the scheduler. The runtime overhead of this 196b642b6d3SIngo Molnar option is minimal. 197b642b6d3SIngo Molnar 1981da177e4SLinus Torvaldsconfig SCHEDSTATS 1991da177e4SLinus Torvalds bool "Collect scheduler statistics" 2001da177e4SLinus Torvalds depends on DEBUG_KERNEL && PROC_FS 2011da177e4SLinus Torvalds help 2021da177e4SLinus Torvalds If you say Y here, additional code will be inserted into the 2031da177e4SLinus Torvalds scheduler and related routines to collect statistics about 2041da177e4SLinus Torvalds scheduler behavior and provide them in /proc/schedstat. These 2051da177e4SLinus Torvalds stats may be useful for both tuning and debugging the scheduler 2061da177e4SLinus Torvalds If you aren't debugging the scheduler or trying to tune a specific 2071da177e4SLinus Torvalds application, you can say N to avoid the very slight overhead 2081da177e4SLinus Torvalds this adds. 2091da177e4SLinus Torvalds 21082f67cd9SIngo Molnarconfig TIMER_STATS 21182f67cd9SIngo Molnar bool "Collect kernel timers statistics" 21282f67cd9SIngo Molnar depends on DEBUG_KERNEL && PROC_FS 21382f67cd9SIngo Molnar help 21482f67cd9SIngo Molnar If you say Y here, additional code will be inserted into the 21582f67cd9SIngo Molnar timer routines to collect statistics about kernel timers being 21682f67cd9SIngo Molnar reprogrammed. The statistics can be read from /proc/timer_stats. 21782f67cd9SIngo Molnar The statistics collection is started by writing 1 to /proc/timer_stats, 21882f67cd9SIngo Molnar writing 0 stops it. This feature is useful to collect information 219c1a834dcSIngo Molnar about timer usage patterns in kernel and userspace. This feature 220c1a834dcSIngo Molnar is lightweight if enabled in the kernel config but not activated 221c1a834dcSIngo Molnar (it defaults to deactivated on bootup and will only be activated 222c1a834dcSIngo Molnar if some application like powertop activates it explicitly). 22382f67cd9SIngo Molnar 2243ac7fe5aSThomas Gleixnerconfig DEBUG_OBJECTS 2253ac7fe5aSThomas Gleixner bool "Debug object operations" 2263ac7fe5aSThomas Gleixner depends on DEBUG_KERNEL 2273ac7fe5aSThomas Gleixner help 2283ac7fe5aSThomas Gleixner If you say Y here, additional code will be inserted into the 2293ac7fe5aSThomas Gleixner kernel to track the life time of various objects and validate 2303ac7fe5aSThomas Gleixner the operations on those objects. 2313ac7fe5aSThomas Gleixner 2323ac7fe5aSThomas Gleixnerconfig DEBUG_OBJECTS_SELFTEST 2333ac7fe5aSThomas Gleixner bool "Debug objects selftest" 2343ac7fe5aSThomas Gleixner depends on DEBUG_OBJECTS 2353ac7fe5aSThomas Gleixner help 2363ac7fe5aSThomas Gleixner This enables the selftest of the object debug code. 2373ac7fe5aSThomas Gleixner 2383ac7fe5aSThomas Gleixnerconfig DEBUG_OBJECTS_FREE 2393ac7fe5aSThomas Gleixner bool "Debug objects in freed memory" 2403ac7fe5aSThomas Gleixner depends on DEBUG_OBJECTS 2413ac7fe5aSThomas Gleixner help 2423ac7fe5aSThomas Gleixner This enables checks whether a k/v free operation frees an area 2433ac7fe5aSThomas Gleixner which contains an object which has not been deactivated 2443ac7fe5aSThomas Gleixner properly. This can make kmalloc/kfree-intensive workloads 2453ac7fe5aSThomas Gleixner much slower. 2463ac7fe5aSThomas Gleixner 247c6f3a97fSThomas Gleixnerconfig DEBUG_OBJECTS_TIMERS 248c6f3a97fSThomas Gleixner bool "Debug timer objects" 249c6f3a97fSThomas Gleixner depends on DEBUG_OBJECTS 250c6f3a97fSThomas Gleixner help 251c6f3a97fSThomas Gleixner If you say Y here, additional code will be inserted into the 252c6f3a97fSThomas Gleixner timer routines to track the life time of timer objects and 253c6f3a97fSThomas Gleixner validate the timer operations. 254c6f3a97fSThomas Gleixner 2551da177e4SLinus Torvaldsconfig DEBUG_SLAB 2564a2f0acfSAndrew Morton bool "Debug slab memory allocations" 25750dd26baSIngo Molnar depends on DEBUG_KERNEL && SLAB 2581da177e4SLinus Torvalds help 2591da177e4SLinus Torvalds Say Y here to have the kernel do limited verification on memory 2601da177e4SLinus Torvalds allocation as well as poisoning memory on free to catch use of freed 2611da177e4SLinus Torvalds memory. This can make kmalloc/kfree-intensive workloads much slower. 2621da177e4SLinus Torvalds 263871751e2SAl Viroconfig DEBUG_SLAB_LEAK 264871751e2SAl Viro bool "Memory leak debugging" 265871751e2SAl Viro depends on DEBUG_SLAB 266871751e2SAl Viro 267f0630fffSChristoph Lameterconfig SLUB_DEBUG_ON 268f0630fffSChristoph Lameter bool "SLUB debugging on by default" 269f0630fffSChristoph Lameter depends on SLUB && SLUB_DEBUG 270f0630fffSChristoph Lameter default n 271f0630fffSChristoph Lameter help 272f0630fffSChristoph Lameter Boot with debugging on by default. SLUB boots by default with 273f0630fffSChristoph Lameter the runtime debug capabilities switched off. Enabling this is 274f0630fffSChristoph Lameter equivalent to specifying the "slub_debug" parameter on boot. 275f0630fffSChristoph Lameter There is no support for more fine grained debug control like 276f0630fffSChristoph Lameter possible with slub_debug=xxx. SLUB debugging may be switched 277f0630fffSChristoph Lameter off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying 278f0630fffSChristoph Lameter "slub_debug=-". 279f0630fffSChristoph Lameter 2808ff12cfcSChristoph Lameterconfig SLUB_STATS 2818ff12cfcSChristoph Lameter default n 2828ff12cfcSChristoph Lameter bool "Enable SLUB performance statistics" 2835b06c853SChristoph Lameter depends on SLUB && SLUB_DEBUG && SYSFS 2848ff12cfcSChristoph Lameter help 2858ff12cfcSChristoph Lameter SLUB statistics are useful to debug SLUBs allocation behavior in 2868ff12cfcSChristoph Lameter order find ways to optimize the allocator. This should never be 2878ff12cfcSChristoph Lameter enabled for production use since keeping statistics slows down 2888ff12cfcSChristoph Lameter the allocator by a few percentage points. The slabinfo command 2898ff12cfcSChristoph Lameter supports the determination of the most active slabs to figure 2908ff12cfcSChristoph Lameter out which slabs are relevant to a particular load. 2918ff12cfcSChristoph Lameter Try running: slabinfo -DA 2928ff12cfcSChristoph Lameter 2931da177e4SLinus Torvaldsconfig DEBUG_PREEMPT 2941da177e4SLinus Torvalds bool "Debug preemptible kernel" 295048c8bc9SHugh Dickins depends on DEBUG_KERNEL && PREEMPT && (TRACE_IRQFLAGS_SUPPORT || PPC64) 2961da177e4SLinus Torvalds default y 2971da177e4SLinus Torvalds help 2981da177e4SLinus Torvalds If you say Y here then the kernel will use a debug variant of the 2991da177e4SLinus Torvalds commonly used smp_processor_id() function and will print warnings 3001da177e4SLinus Torvalds if kernel code uses it in a preemption-unsafe way. Also, the kernel 3011da177e4SLinus Torvalds will detect preemption count underflows. 3021da177e4SLinus Torvalds 303e7eebaf6SIngo Molnarconfig DEBUG_RT_MUTEXES 304e7eebaf6SIngo Molnar bool "RT Mutex debugging, deadlock detection" 305e7eebaf6SIngo Molnar depends on DEBUG_KERNEL && RT_MUTEXES 306e7eebaf6SIngo Molnar help 307e7eebaf6SIngo Molnar This allows rt mutex semantics violations and rt mutex related 308e7eebaf6SIngo Molnar deadlocks (lockups) to be detected and reported automatically. 309e7eebaf6SIngo Molnar 310e7eebaf6SIngo Molnarconfig DEBUG_PI_LIST 311e7eebaf6SIngo Molnar bool 312e7eebaf6SIngo Molnar default y 313e7eebaf6SIngo Molnar depends on DEBUG_RT_MUTEXES 314e7eebaf6SIngo Molnar 31561a87122SThomas Gleixnerconfig RT_MUTEX_TESTER 31661a87122SThomas Gleixner bool "Built-in scriptable tester for rt-mutexes" 317a1583d3eSRoman Zippel depends on DEBUG_KERNEL && RT_MUTEXES 31861a87122SThomas Gleixner help 31961a87122SThomas Gleixner This option enables a rt-mutex tester. 32061a87122SThomas Gleixner 3211da177e4SLinus Torvaldsconfig DEBUG_SPINLOCK 3224d9f34adSIngo Molnar bool "Spinlock and rw-lock debugging: basic checks" 3231da177e4SLinus Torvalds depends on DEBUG_KERNEL 3241da177e4SLinus Torvalds help 3251da177e4SLinus Torvalds Say Y here and build SMP to catch missing spinlock initialization 3261da177e4SLinus Torvalds and certain other kinds of spinlock errors commonly made. This is 3271da177e4SLinus Torvalds best used in conjunction with the NMI watchdog so that spinlock 3281da177e4SLinus Torvalds deadlocks are also debuggable. 3291da177e4SLinus Torvalds 3304d9f34adSIngo Molnarconfig DEBUG_MUTEXES 3314d9f34adSIngo Molnar bool "Mutex debugging: basic checks" 3324d9f34adSIngo Molnar depends on DEBUG_KERNEL 3334d9f34adSIngo Molnar help 3344d9f34adSIngo Molnar This feature allows mutex semantics violations to be detected and 3354d9f34adSIngo Molnar reported. 3364d9f34adSIngo Molnar 3374d9f34adSIngo Molnarconfig DEBUG_LOCK_ALLOC 3384d9f34adSIngo Molnar bool "Lock debugging: detect incorrect freeing of live locks" 339517e7aa5SAdrian Bunk depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 3404d9f34adSIngo Molnar select DEBUG_SPINLOCK 3414d9f34adSIngo Molnar select DEBUG_MUTEXES 3424d9f34adSIngo Molnar select LOCKDEP 3434d9f34adSIngo Molnar help 3444d9f34adSIngo Molnar This feature will check whether any held lock (spinlock, rwlock, 3454d9f34adSIngo Molnar mutex or rwsem) is incorrectly freed by the kernel, via any of the 3464d9f34adSIngo Molnar memory-freeing routines (kfree(), kmem_cache_free(), free_pages(), 3474d9f34adSIngo Molnar vfree(), etc.), whether a live lock is incorrectly reinitialized via 3484d9f34adSIngo Molnar spin_lock_init()/mutex_init()/etc., or whether there is any lock 3494d9f34adSIngo Molnar held during task exit. 3504d9f34adSIngo Molnar 3514d9f34adSIngo Molnarconfig PROVE_LOCKING 3524d9f34adSIngo Molnar bool "Lock debugging: prove locking correctness" 353517e7aa5SAdrian Bunk depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 3544d9f34adSIngo Molnar select LOCKDEP 3554d9f34adSIngo Molnar select DEBUG_SPINLOCK 3564d9f34adSIngo Molnar select DEBUG_MUTEXES 3574d9f34adSIngo Molnar select DEBUG_LOCK_ALLOC 3584d9f34adSIngo Molnar default n 3594d9f34adSIngo Molnar help 3604d9f34adSIngo Molnar This feature enables the kernel to prove that all locking 3614d9f34adSIngo Molnar that occurs in the kernel runtime is mathematically 3624d9f34adSIngo Molnar correct: that under no circumstance could an arbitrary (and 3634d9f34adSIngo Molnar not yet triggered) combination of observed locking 3644d9f34adSIngo Molnar sequences (on an arbitrary number of CPUs, running an 3654d9f34adSIngo Molnar arbitrary number of tasks and interrupt contexts) cause a 3664d9f34adSIngo Molnar deadlock. 3674d9f34adSIngo Molnar 3684d9f34adSIngo Molnar In short, this feature enables the kernel to report locking 3694d9f34adSIngo Molnar related deadlocks before they actually occur. 3704d9f34adSIngo Molnar 3714d9f34adSIngo Molnar The proof does not depend on how hard and complex a 3724d9f34adSIngo Molnar deadlock scenario would be to trigger: how many 3734d9f34adSIngo Molnar participant CPUs, tasks and irq-contexts would be needed 3744d9f34adSIngo Molnar for it to trigger. The proof also does not depend on 3754d9f34adSIngo Molnar timing: if a race and a resulting deadlock is possible 3764d9f34adSIngo Molnar theoretically (no matter how unlikely the race scenario 3774d9f34adSIngo Molnar is), it will be proven so and will immediately be 3784d9f34adSIngo Molnar reported by the kernel (once the event is observed that 3794d9f34adSIngo Molnar makes the deadlock theoretically possible). 3804d9f34adSIngo Molnar 3814d9f34adSIngo Molnar If a deadlock is impossible (i.e. the locking rules, as 3824d9f34adSIngo Molnar observed by the kernel, are mathematically correct), the 3834d9f34adSIngo Molnar kernel reports nothing. 3844d9f34adSIngo Molnar 3854d9f34adSIngo Molnar NOTE: this feature can also be enabled for rwlocks, mutexes 3864d9f34adSIngo Molnar and rwsems - in which case all dependencies between these 3874d9f34adSIngo Molnar different locking variants are observed and mapped too, and 3884d9f34adSIngo Molnar the proof of observed correctness is also maintained for an 3894d9f34adSIngo Molnar arbitrary combination of these separate locking variants. 3904d9f34adSIngo Molnar 3914d9f34adSIngo Molnar For more details, see Documentation/lockdep-design.txt. 3924d9f34adSIngo Molnar 3934d9f34adSIngo Molnarconfig LOCKDEP 3944d9f34adSIngo Molnar bool 395517e7aa5SAdrian Bunk depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 3964d9f34adSIngo Molnar select STACKTRACE 39714cf232aSFranck Bui-Huu select FRAME_POINTER if !X86 && !MIPS 3984d9f34adSIngo Molnar select KALLSYMS 3994d9f34adSIngo Molnar select KALLSYMS_ALL 4004d9f34adSIngo Molnar 401f20786ffSPeter Zijlstraconfig LOCK_STAT 402fdfb870fSDanny ter Haar bool "Lock usage statistics" 403f20786ffSPeter Zijlstra depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 404f20786ffSPeter Zijlstra select LOCKDEP 405f20786ffSPeter Zijlstra select DEBUG_SPINLOCK 406f20786ffSPeter Zijlstra select DEBUG_MUTEXES 407f20786ffSPeter Zijlstra select DEBUG_LOCK_ALLOC 408f20786ffSPeter Zijlstra default n 409f20786ffSPeter Zijlstra help 410f20786ffSPeter Zijlstra This feature enables tracking lock contention points 411f20786ffSPeter Zijlstra 412a560aa48SPeter Zijlstra For more details, see Documentation/lockstat.txt 413a560aa48SPeter Zijlstra 4144d9f34adSIngo Molnarconfig DEBUG_LOCKDEP 4154d9f34adSIngo Molnar bool "Lock dependency engine debugging" 416517e7aa5SAdrian Bunk depends on DEBUG_KERNEL && LOCKDEP 4174d9f34adSIngo Molnar help 4184d9f34adSIngo Molnar If you say Y here, the lock dependency engine will do 4194d9f34adSIngo Molnar additional runtime checks to debug itself, at the price 4204d9f34adSIngo Molnar of more runtime overhead. 4214d9f34adSIngo Molnar 4224d9f34adSIngo Molnarconfig TRACE_IRQFLAGS 423517e7aa5SAdrian Bunk depends on DEBUG_KERNEL 4244d9f34adSIngo Molnar bool 4254d9f34adSIngo Molnar default y 4264d9f34adSIngo Molnar depends on TRACE_IRQFLAGS_SUPPORT 4274d9f34adSIngo Molnar depends on PROVE_LOCKING 4284d9f34adSIngo Molnar 4291da177e4SLinus Torvaldsconfig DEBUG_SPINLOCK_SLEEP 4304d9f34adSIngo Molnar bool "Spinlock debugging: sleep-inside-spinlock checking" 4311da177e4SLinus Torvalds depends on DEBUG_KERNEL 4321da177e4SLinus Torvalds help 4331da177e4SLinus Torvalds If you say Y here, various routines which may sleep will become very 4341da177e4SLinus Torvalds noisy if they are called with a spinlock held. 4351da177e4SLinus Torvalds 436cae2ed9aSIngo Molnarconfig DEBUG_LOCKING_API_SELFTESTS 437cae2ed9aSIngo Molnar bool "Locking API boot-time self-tests" 438cae2ed9aSIngo Molnar depends on DEBUG_KERNEL 439cae2ed9aSIngo Molnar help 440cae2ed9aSIngo Molnar Say Y here if you want the kernel to run a short self-test during 441cae2ed9aSIngo Molnar bootup. The self-test checks whether common types of locking bugs 442cae2ed9aSIngo Molnar are detected by debugging mechanisms or not. (if you disable 443cae2ed9aSIngo Molnar lock debugging then those bugs wont be detected of course.) 444cae2ed9aSIngo Molnar The following locking APIs are covered: spinlocks, rwlocks, 445cae2ed9aSIngo Molnar mutexes and rwsems. 446cae2ed9aSIngo Molnar 4478637c099SIngo Molnarconfig STACKTRACE 4488637c099SIngo Molnar bool 4498637c099SIngo Molnar depends on STACKTRACE_SUPPORT 4508637c099SIngo Molnar 4511da177e4SLinus Torvaldsconfig DEBUG_KOBJECT 4521da177e4SLinus Torvalds bool "kobject debugging" 4531da177e4SLinus Torvalds depends on DEBUG_KERNEL 4541da177e4SLinus Torvalds help 4551da177e4SLinus Torvalds If you say Y here, some extra kobject debugging messages will be sent 4561da177e4SLinus Torvalds to the syslog. 4571da177e4SLinus Torvalds 4581da177e4SLinus Torvaldsconfig DEBUG_HIGHMEM 4591da177e4SLinus Torvalds bool "Highmem debugging" 4601da177e4SLinus Torvalds depends on DEBUG_KERNEL && HIGHMEM 4611da177e4SLinus Torvalds help 4621da177e4SLinus Torvalds This options enables addition error checking for high memory systems. 4631da177e4SLinus Torvalds Disable for production systems. 4641da177e4SLinus Torvalds 4651da177e4SLinus Torvaldsconfig DEBUG_BUGVERBOSE 4661da177e4SLinus Torvalds bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED 467c8538a7aSMatt Mackall depends on BUG 468b920de1bSDavid Howells depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \ 469b920de1bSDavid Howells FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300 4701da177e4SLinus Torvalds default !EMBEDDED 4711da177e4SLinus Torvalds help 4721da177e4SLinus Torvalds Say Y here to make BUG() panics output the file name and line number 4731da177e4SLinus Torvalds of the BUG call as well as the EIP and oops trace. This aids 4741da177e4SLinus Torvalds debugging but costs about 70-100K of memory. 4751da177e4SLinus Torvalds 4761da177e4SLinus Torvaldsconfig DEBUG_INFO 4771da177e4SLinus Torvalds bool "Compile the kernel with debug info" 4781da177e4SLinus Torvalds depends on DEBUG_KERNEL 4791da177e4SLinus Torvalds help 4801da177e4SLinus Torvalds If you say Y here the resulting kernel image will include 4811da177e4SLinus Torvalds debugging info resulting in a larger kernel image. 482b72e53f8SAndreas Dilger This adds debug symbols to the kernel and modules (gcc -g), and 483b72e53f8SAndreas Dilger is needed if you intend to use kernel crashdump or binary object 484b72e53f8SAndreas Dilger tools like crash, kgdb, LKCD, gdb, etc on the kernel. 4851da177e4SLinus Torvalds Say Y here only if you plan to debug the kernel. 4861da177e4SLinus Torvalds 4871da177e4SLinus Torvalds If unsure, say N. 4881da177e4SLinus Torvalds 489a241ec65SPaul E. McKenneyconfig DEBUG_VM 490a241ec65SPaul E. McKenney bool "Debug VM" 491a241ec65SPaul E. McKenney depends on DEBUG_KERNEL 492a241ec65SPaul E. McKenney help 49313e7444bSNick Piggin Enable this to turn on extended checks in the virtual-memory system 49413e7444bSNick Piggin that may impact performance. 495a241ec65SPaul E. McKenney 496a241ec65SPaul E. McKenney If unsure, say N. 497a241ec65SPaul E. McKenney 498ad775f5aSDave Hansenconfig DEBUG_WRITECOUNT 499ad775f5aSDave Hansen bool "Debug filesystem writers count" 500ad775f5aSDave Hansen depends on DEBUG_KERNEL 501ad775f5aSDave Hansen help 502ad775f5aSDave Hansen Enable this to catch wrong use of the writers count in struct 503ad775f5aSDave Hansen vfsmount. This will increase the size of each file struct by 504ad775f5aSDave Hansen 32 bits. 505ad775f5aSDave Hansen 506ad775f5aSDave Hansen If unsure, say N. 507ad775f5aSDave Hansen 5086b74ab97SMel Gormanconfig DEBUG_MEMORY_INIT 5096b74ab97SMel Gorman bool "Debug memory initialisation" if EMBEDDED 5106b74ab97SMel Gorman default !EMBEDDED 5116b74ab97SMel Gorman help 5126b74ab97SMel Gorman Enable this for additional checks during memory initialisation. 5136b74ab97SMel Gorman The sanity checks verify aspects of the VM such as the memory model 5146b74ab97SMel Gorman and other information provided by the architecture. Verbose 5156b74ab97SMel Gorman information will be printed at KERN_DEBUG loglevel depending 5166b74ab97SMel Gorman on the mminit_loglevel= command-line option. 5176b74ab97SMel Gorman 5186b74ab97SMel Gorman If unsure, say Y 5196b74ab97SMel Gorman 520199a9afcSDave Jonesconfig DEBUG_LIST 521199a9afcSDave Jones bool "Debug linked list manipulation" 522199a9afcSDave Jones depends on DEBUG_KERNEL 523199a9afcSDave Jones help 524199a9afcSDave Jones Enable this to turn on extended checks in the linked-list 525199a9afcSDave Jones walking routines. 526199a9afcSDave Jones 527199a9afcSDave Jones If unsure, say N. 528199a9afcSDave Jones 529d6ec0842SJens Axboeconfig DEBUG_SG 530d6ec0842SJens Axboe bool "Debug SG table operations" 531d6ec0842SJens Axboe depends on DEBUG_KERNEL 532d6ec0842SJens Axboe help 533d6ec0842SJens Axboe Enable this to turn on checks on scatter-gather tables. This can 534d6ec0842SJens Axboe help find problems with drivers that do not properly initialize 535d6ec0842SJens Axboe their sg tables. 536d6ec0842SJens Axboe 537d6ec0842SJens Axboe If unsure, say N. 538d6ec0842SJens Axboe 539*1b2439dbSArjan van de Venconfig DEBUG_NOTIFIERS 540*1b2439dbSArjan van de Ven bool "Debug notifier call chains" 541*1b2439dbSArjan van de Ven depends on DEBUG_KERNEL 542*1b2439dbSArjan van de Ven help 543*1b2439dbSArjan van de Ven Enable this to turn on sanity checking for notifier call chains. 544*1b2439dbSArjan van de Ven This is most useful for kernel developers to make sure that 545*1b2439dbSArjan van de Ven modules properly unregister themselves from notifier chains. 546*1b2439dbSArjan van de Ven This is a relatively cheap check but if you care about maximum 547*1b2439dbSArjan van de Ven performance, say N. 548*1b2439dbSArjan van de Ven 5491da177e4SLinus Torvaldsconfig FRAME_POINTER 5501da177e4SLinus Torvalds bool "Compile the kernel with frame pointers" 551b920de1bSDavid Howells depends on DEBUG_KERNEL && \ 552b920de1bSDavid Howells (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390 || \ 553b920de1bSDavid Howells AVR32 || SUPERH || BLACKFIN || MN10300) 55437fce857SPaolo 'Blaisorblade' Giarrusso default y if DEBUG_INFO && UML 5551da177e4SLinus Torvalds help 5561da177e4SLinus Torvalds If you say Y here the resulting kernel image will be slightly larger 5572a38bccdSJesper Juhl and slower, but it might give very useful debugging information on 5582a38bccdSJesper Juhl some architectures or if you use external debuggers. 559aeb39986SAndi Kleen If you don't debug the kernel, you can say N. 5601da177e4SLinus Torvalds 561bfe8df3dSRandy Dunlapconfig BOOT_PRINTK_DELAY 562bfe8df3dSRandy Dunlap bool "Delay each boot printk message by N milliseconds" 563bfe8df3dSRandy Dunlap depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY 564bfe8df3dSRandy Dunlap help 565bfe8df3dSRandy Dunlap This build option allows you to read kernel boot messages 566bfe8df3dSRandy Dunlap by inserting a short delay after each one. The delay is 567bfe8df3dSRandy Dunlap specified in milliseconds on the kernel command line, 568bfe8df3dSRandy Dunlap using "boot_delay=N". 569bfe8df3dSRandy Dunlap 570bfe8df3dSRandy Dunlap It is likely that you would also need to use "lpj=M" to preset 571bfe8df3dSRandy Dunlap the "loops per jiffie" value. 572bfe8df3dSRandy Dunlap See a previous boot log for the "lpj" value to use for your 573bfe8df3dSRandy Dunlap system, and then set "lpj=M" before setting "boot_delay=N". 574bfe8df3dSRandy Dunlap NOTE: Using this option may adversely affect SMP systems. 575bfe8df3dSRandy Dunlap I.e., processors other than the first one may not boot up. 576bfe8df3dSRandy Dunlap BOOT_PRINTK_DELAY also may cause DETECT_SOFTLOCKUP to detect 577bfe8df3dSRandy Dunlap what it believes to be lockup conditions. 578bfe8df3dSRandy Dunlap 579a241ec65SPaul E. McKenneyconfig RCU_TORTURE_TEST 580a241ec65SPaul E. McKenney tristate "torture tests for RCU" 581a241ec65SPaul E. McKenney depends on DEBUG_KERNEL 582a241ec65SPaul E. McKenney default n 583a241ec65SPaul E. McKenney help 584a241ec65SPaul E. McKenney This option provides a kernel module that runs torture tests 585a241ec65SPaul E. McKenney on the RCU infrastructure. The kernel module may be built 586a241ec65SPaul E. McKenney after the fact on the running kernel to be tested, if desired. 587a241ec65SPaul E. McKenney 58831a72bceSPaul E. McKenney Say Y here if you want RCU torture tests to be built into 58931a72bceSPaul E. McKenney the kernel. 590a241ec65SPaul E. McKenney Say M if you want the RCU torture tests to build as a module. 591a241ec65SPaul E. McKenney Say N if you are unsure. 5928bb31b9dSAnkita Garg 59331a72bceSPaul E. McKenneyconfig RCU_TORTURE_TEST_RUNNABLE 59431a72bceSPaul E. McKenney bool "torture tests for RCU runnable by default" 59531a72bceSPaul E. McKenney depends on RCU_TORTURE_TEST = y 59631a72bceSPaul E. McKenney default n 59731a72bceSPaul E. McKenney help 59831a72bceSPaul E. McKenney This option provides a way to build the RCU torture tests 59931a72bceSPaul E. McKenney directly into the kernel without them starting up at boot 60031a72bceSPaul E. McKenney time. You can use /proc/sys/kernel/rcutorture_runnable 60131a72bceSPaul E. McKenney to manually override this setting. This /proc file is 60231a72bceSPaul E. McKenney available only when the RCU torture tests have been built 60331a72bceSPaul E. McKenney into the kernel. 60431a72bceSPaul E. McKenney 60531a72bceSPaul E. McKenney Say Y here if you want the RCU torture tests to start during 60631a72bceSPaul E. McKenney boot (you probably don't). 60731a72bceSPaul E. McKenney Say N here if you want the RCU torture tests to start only 60831a72bceSPaul E. McKenney after being manually enabled via /proc. 60931a72bceSPaul E. McKenney 6108c1c9356SAnanth N Mavinakayanahalliconfig KPROBES_SANITY_TEST 6118c1c9356SAnanth N Mavinakayanahalli bool "Kprobes sanity tests" 6128c1c9356SAnanth N Mavinakayanahalli depends on DEBUG_KERNEL 6138c1c9356SAnanth N Mavinakayanahalli depends on KPROBES 6148c1c9356SAnanth N Mavinakayanahalli default n 6158c1c9356SAnanth N Mavinakayanahalli help 6168c1c9356SAnanth N Mavinakayanahalli This option provides for testing basic kprobes functionality on 6178c1c9356SAnanth N Mavinakayanahalli boot. A sample kprobe, jprobe and kretprobe are inserted and 6188c1c9356SAnanth N Mavinakayanahalli verified for functionality. 6198c1c9356SAnanth N Mavinakayanahalli 6208c1c9356SAnanth N Mavinakayanahalli Say N if you are unsure. 6218c1c9356SAnanth N Mavinakayanahalli 6226dab2778SArjan van de Venconfig BACKTRACE_SELF_TEST 6236dab2778SArjan van de Ven tristate "Self test for the backtrace code" 6246dab2778SArjan van de Ven depends on DEBUG_KERNEL 6256dab2778SArjan van de Ven default n 6266dab2778SArjan van de Ven help 6276dab2778SArjan van de Ven This option provides a kernel module that can be used to test 6286dab2778SArjan van de Ven the kernel stack backtrace code. This option is not useful 6296dab2778SArjan van de Ven for distributions or general kernels, but only for kernel 6306dab2778SArjan van de Ven developers working on architecture code. 6316dab2778SArjan van de Ven 632ad118c54SVegard Nossum Note that if you want to also test saved backtraces, you will 633ad118c54SVegard Nossum have to enable STACKTRACE as well. 634ad118c54SVegard Nossum 6356dab2778SArjan van de Ven Say N if you are unsure. 6366dab2778SArjan van de Ven 6378bb31b9dSAnkita Gargconfig LKDTM 6388bb31b9dSAnkita Garg tristate "Linux Kernel Dump Test Tool Module" 639bf4735a4SDon Mullis depends on DEBUG_KERNEL 6408bb31b9dSAnkita Garg depends on KPROBES 641fddd9cf8SChris Snook depends on BLOCK 6428bb31b9dSAnkita Garg default n 6438bb31b9dSAnkita Garg help 6448bb31b9dSAnkita Garg This module enables testing of the different dumping mechanisms by 6458bb31b9dSAnkita Garg inducing system failures at predefined crash points. 6468bb31b9dSAnkita Garg If you don't need it: say N 6478bb31b9dSAnkita Garg Choose M here to compile this code as a module. The module will be 6488bb31b9dSAnkita Garg called lkdtm. 6498bb31b9dSAnkita Garg 6508bb31b9dSAnkita Garg Documentation on how to use the module can be found in 6518bb31b9dSAnkita Garg drivers/misc/lkdtm.c 6526ff1cb35SAkinobu Mita 6536ff1cb35SAkinobu Mitaconfig FAULT_INJECTION 6541ab8509aSAndrew Morton bool "Fault-injection framework" 6551ab8509aSAndrew Morton depends on DEBUG_KERNEL 656329409aeSAkinobu Mita help 657329409aeSAkinobu Mita Provide fault-injection framework. 658329409aeSAkinobu Mita For more details, see Documentation/fault-injection/. 6596ff1cb35SAkinobu Mita 6608a8b6502SAkinobu Mitaconfig FAILSLAB 6611ab8509aSAndrew Morton bool "Fault-injection capability for kmalloc" 6621ab8509aSAndrew Morton depends on FAULT_INJECTION 6638a8b6502SAkinobu Mita help 6641ab8509aSAndrew Morton Provide fault-injection capability for kmalloc. 6658a8b6502SAkinobu Mita 666933e312eSAkinobu Mitaconfig FAIL_PAGE_ALLOC 667933e312eSAkinobu Mita bool "Fault-injection capabilitiy for alloc_pages()" 6681ab8509aSAndrew Morton depends on FAULT_INJECTION 669933e312eSAkinobu Mita help 6701ab8509aSAndrew Morton Provide fault-injection capability for alloc_pages(). 671933e312eSAkinobu Mita 672c17bb495SAkinobu Mitaconfig FAIL_MAKE_REQUEST 67386327d19SDave Jones bool "Fault-injection capability for disk IO" 6741ab8509aSAndrew Morton depends on FAULT_INJECTION 675c17bb495SAkinobu Mita help 6761ab8509aSAndrew Morton Provide fault-injection capability for disk IO. 677c17bb495SAkinobu Mita 6786ff1cb35SAkinobu Mitaconfig FAULT_INJECTION_DEBUG_FS 6796ff1cb35SAkinobu Mita bool "Debugfs entries for fault-injection capabilities" 6801ab8509aSAndrew Morton depends on FAULT_INJECTION && SYSFS && DEBUG_FS 6816ff1cb35SAkinobu Mita help 6821ab8509aSAndrew Morton Enable configuration of fault-injection capabilities via debugfs. 6831df49008SAkinobu Mita 6841df49008SAkinobu Mitaconfig FAULT_INJECTION_STACKTRACE_FILTER 6851df49008SAkinobu Mita bool "stacktrace filter for fault-injection capabilities" 6861df49008SAkinobu Mita depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT 6876d690dcaSAkinobu Mita depends on !X86_64 6881df49008SAkinobu Mita select STACKTRACE 6891df49008SAkinobu Mita select FRAME_POINTER 6901df49008SAkinobu Mita help 6911df49008SAkinobu Mita Provide stacktrace filter for fault-injection capabilities 692267c4025SMathieu Desnoyers 6939745512cSArjan van de Venconfig LATENCYTOP 6949745512cSArjan van de Ven bool "Latency measuring infrastructure" 6959745512cSArjan van de Ven select FRAME_POINTER if !MIPS 6969745512cSArjan van de Ven select KALLSYMS 6979745512cSArjan van de Ven select KALLSYMS_ALL 6989745512cSArjan van de Ven select STACKTRACE 6999745512cSArjan van de Ven select SCHEDSTATS 7009745512cSArjan van de Ven select SCHED_DEBUG 701aa7d9350SHeiko Carstens depends on HAVE_LATENCYTOP_SUPPORT 7029745512cSArjan van de Ven help 7039745512cSArjan van de Ven Enable this option if you want to use the LatencyTOP tool 7049745512cSArjan van de Ven to find out which userspace is blocking on what kernel operations. 7059745512cSArjan van de Ven 7069e94cd32SAndi Kleenconfig SYSCTL_SYSCALL_CHECK 7079e94cd32SAndi Kleen bool "Sysctl checks" 7089e94cd32SAndi Kleen depends on SYSCTL_SYSCALL 7099e94cd32SAndi Kleen ---help--- 7109e94cd32SAndi Kleen sys_sysctl uses binary paths that have been found challenging 7119e94cd32SAndi Kleen to properly maintain and use. This enables checks that help 7129e94cd32SAndi Kleen you to keep things correct. 7139e94cd32SAndi Kleen 71416444a8aSArnaldo Carvalho de Melosource kernel/trace/Kconfig 71516444a8aSArnaldo Carvalho de Melo 716f212ec4bSBernhard Kaindlconfig PROVIDE_OHCI1394_DMA_INIT 717080de8c2SStefan Richter bool "Remote debugging over FireWire early on boot" 718f212ec4bSBernhard Kaindl depends on PCI && X86 719f212ec4bSBernhard Kaindl help 720f212ec4bSBernhard Kaindl If you want to debug problems which hang or crash the kernel early 721f212ec4bSBernhard Kaindl on boot and the crashing machine has a FireWire port, you can use 722f212ec4bSBernhard Kaindl this feature to remotely access the memory of the crashed machine 723f212ec4bSBernhard Kaindl over FireWire. This employs remote DMA as part of the OHCI1394 724f212ec4bSBernhard Kaindl specification which is now the standard for FireWire controllers. 725f212ec4bSBernhard Kaindl 726f212ec4bSBernhard Kaindl With remote DMA, you can monitor the printk buffer remotely using 727f212ec4bSBernhard Kaindl firescope and access all memory below 4GB using fireproxy from gdb. 728f212ec4bSBernhard Kaindl Even controlling a kernel debugger is possible using remote DMA. 729f212ec4bSBernhard Kaindl 730f212ec4bSBernhard Kaindl Usage: 731f212ec4bSBernhard Kaindl 732f212ec4bSBernhard Kaindl If ohci1394_dma=early is used as boot parameter, it will initialize 733f212ec4bSBernhard Kaindl all OHCI1394 controllers which are found in the PCI config space. 734f212ec4bSBernhard Kaindl 735f212ec4bSBernhard Kaindl As all changes to the FireWire bus such as enabling and disabling 736f212ec4bSBernhard Kaindl devices cause a bus reset and thereby disable remote DMA for all 737f212ec4bSBernhard Kaindl devices, be sure to have the cable plugged and FireWire enabled on 738f212ec4bSBernhard Kaindl the debugging host before booting the debug target for debugging. 739f212ec4bSBernhard Kaindl 740f212ec4bSBernhard Kaindl This code (~1k) is freed after boot. By then, the firewire stack 741f212ec4bSBernhard Kaindl in charge of the OHCI-1394 controllers should be used instead. 742f212ec4bSBernhard Kaindl 743f212ec4bSBernhard Kaindl See Documentation/debugging-via-ohci1394.txt for more information. 7449745512cSArjan van de Ven 745080de8c2SStefan Richterconfig FIREWIRE_OHCI_REMOTE_DMA 746080de8c2SStefan Richter bool "Remote debugging over FireWire with firewire-ohci" 747080de8c2SStefan Richter depends on FIREWIRE_OHCI 748080de8c2SStefan Richter help 749080de8c2SStefan Richter This option lets you use the FireWire bus for remote debugging 750080de8c2SStefan Richter with help of the firewire-ohci driver. It enables unfiltered 751080de8c2SStefan Richter remote DMA in firewire-ohci. 752080de8c2SStefan Richter See Documentation/debugging-via-ohci1394.txt for more information. 753080de8c2SStefan Richter 754080de8c2SStefan Richter If unsure, say N. 755080de8c2SStefan Richter 7563794f3e8SRandy Dunlapmenuconfig BUILD_DOCSRC 7573794f3e8SRandy Dunlap bool "Build targets in Documentation/ tree" 7583794f3e8SRandy Dunlap depends on HEADERS_CHECK 7593794f3e8SRandy Dunlap help 7603794f3e8SRandy Dunlap This option attempts to build objects from the source files in the 7613794f3e8SRandy Dunlap kernel Documentation/ tree. 7623794f3e8SRandy Dunlap 7633794f3e8SRandy Dunlap Say N if you are unsure. 7643794f3e8SRandy Dunlap 765267c4025SMathieu Desnoyerssource "samples/Kconfig" 766dc7d5527SJason Wessel 767dc7d5527SJason Wesselsource "lib/Kconfig.kgdb" 768