xref: /linux/lib/Kconfig.debug (revision 1b2439dbb703ae8d95a9ce7ece6b7800b80f41f0)
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