|  |  | 
|  | config PRINTK_TIME | 
|  | bool "Show timing information on printks" | 
|  | help | 
|  | Selecting this option causes timing information to be | 
|  | included in printk output.  This allows you to measure | 
|  | the interval between kernel operations, including bootup | 
|  | operations.  This is useful for identifying long delays | 
|  | in kernel startup. | 
|  |  | 
|  |  | 
|  | config MAGIC_SYSRQ | 
|  | bool "Magic SysRq key" | 
|  | depends on !UML | 
|  | help | 
|  | If you say Y here, you will have some control over the system even | 
|  | if the system crashes for example during kernel debugging (e.g., you | 
|  | will be able to flush the buffer cache to disk, reboot the system | 
|  | immediately or dump some status information). This is accomplished | 
|  | by pressing various keys while holding SysRq (Alt+PrintScreen). It | 
|  | also works on a serial console (on PC hardware at least), if you | 
|  | send a BREAK and then within 5 seconds a command keypress. The | 
|  | keys are documented in <file:Documentation/sysrq.txt>. Don't say Y | 
|  | unless you really know what this hack does. | 
|  |  | 
|  | config DEBUG_KERNEL | 
|  | bool "Kernel debugging" | 
|  | help | 
|  | Say Y here if you are developing drivers or trying to debug and | 
|  | identify kernel problems. | 
|  |  | 
|  | config LOG_BUF_SHIFT | 
|  | int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" if DEBUG_KERNEL | 
|  | range 12 21 | 
|  | default 17 if S390 | 
|  | default 16 if X86_NUMAQ || IA64 | 
|  | default 15 if SMP | 
|  | default 14 | 
|  | help | 
|  | Select kernel log buffer size as a power of 2. | 
|  | Defaults and Examples: | 
|  | 17 => 128 KB for S/390 | 
|  | 16 => 64 KB for x86 NUMAQ or IA-64 | 
|  | 15 => 32 KB for SMP | 
|  | 14 => 16 KB for uniprocessor | 
|  | 13 =>  8 KB | 
|  | 12 =>  4 KB | 
|  |  | 
|  | config DETECT_SOFTLOCKUP | 
|  | bool "Detect Soft Lockups" | 
|  | depends on DEBUG_KERNEL | 
|  | default y | 
|  | help | 
|  | Say Y here to enable the kernel to detect "soft lockups", | 
|  | which are bugs that cause the kernel to loop in kernel | 
|  | mode for more than 10 seconds, without giving other tasks a | 
|  | chance to run. | 
|  |  | 
|  | When a soft-lockup is detected, the kernel will print the | 
|  | current stack trace (which you should report), but the | 
|  | system will stay locked up. This feature has negligible | 
|  | overhead. | 
|  |  | 
|  | (Note that "hard lockups" are separate type of bugs that | 
|  | can be detected via the NMI-watchdog, on platforms that | 
|  | support it.) | 
|  |  | 
|  | config SCHEDSTATS | 
|  | bool "Collect scheduler statistics" | 
|  | depends on DEBUG_KERNEL && PROC_FS | 
|  | help | 
|  | If you say Y here, additional code will be inserted into the | 
|  | scheduler and related routines to collect statistics about | 
|  | scheduler behavior and provide them in /proc/schedstat.  These | 
|  | stats may be useful for both tuning and debugging the scheduler | 
|  | If you aren't debugging the scheduler or trying to tune a specific | 
|  | application, you can say N to avoid the very slight overhead | 
|  | this adds. | 
|  |  | 
|  | config DEBUG_SLAB | 
|  | bool "Debug memory allocations" | 
|  | depends on DEBUG_KERNEL && SLAB | 
|  | help | 
|  | Say Y here to have the kernel do limited verification on memory | 
|  | allocation as well as poisoning memory on free to catch use of freed | 
|  | memory. This can make kmalloc/kfree-intensive workloads much slower. | 
|  |  | 
|  | config DEBUG_PREEMPT | 
|  | bool "Debug preemptible kernel" | 
|  | depends on DEBUG_KERNEL && PREEMPT | 
|  | default y | 
|  | help | 
|  | If you say Y here then the kernel will use a debug variant of the | 
|  | commonly used smp_processor_id() function and will print warnings | 
|  | if kernel code uses it in a preemption-unsafe way. Also, the kernel | 
|  | will detect preemption count underflows. | 
|  |  | 
|  | config DEBUG_MUTEXES | 
|  | bool "Mutex debugging, deadlock detection" | 
|  | default y | 
|  | depends on DEBUG_KERNEL | 
|  | help | 
|  | This allows mutex semantics violations and mutex related deadlocks | 
|  | (lockups) to be detected and reported automatically. | 
|  |  | 
|  | config DEBUG_SPINLOCK | 
|  | bool "Spinlock debugging" | 
|  | depends on DEBUG_KERNEL | 
|  | help | 
|  | Say Y here and build SMP to catch missing spinlock initialization | 
|  | and certain other kinds of spinlock errors commonly made.  This is | 
|  | best used in conjunction with the NMI watchdog so that spinlock | 
|  | deadlocks are also debuggable. | 
|  |  | 
|  | config DEBUG_SPINLOCK_SLEEP | 
|  | bool "Sleep-inside-spinlock checking" | 
|  | depends on DEBUG_KERNEL | 
|  | help | 
|  | If you say Y here, various routines which may sleep will become very | 
|  | noisy if they are called with a spinlock held. | 
|  |  | 
|  | config DEBUG_KOBJECT | 
|  | bool "kobject debugging" | 
|  | depends on DEBUG_KERNEL | 
|  | help | 
|  | If you say Y here, some extra kobject debugging messages will be sent | 
|  | to the syslog. | 
|  |  | 
|  | config DEBUG_HIGHMEM | 
|  | bool "Highmem debugging" | 
|  | depends on DEBUG_KERNEL && HIGHMEM | 
|  | help | 
|  | This options enables addition error checking for high memory systems. | 
|  | Disable for production systems. | 
|  |  | 
|  | config DEBUG_BUGVERBOSE | 
|  | bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED | 
|  | depends on BUG | 
|  | depends on ARM || ARM26 || M32R || M68K || SPARC32 || SPARC64 || X86_32 || FRV | 
|  | default !EMBEDDED | 
|  | help | 
|  | Say Y here to make BUG() panics output the file name and line number | 
|  | of the BUG call as well as the EIP and oops trace.  This aids | 
|  | debugging but costs about 70-100K of memory. | 
|  |  | 
|  | config DEBUG_INFO | 
|  | bool "Compile the kernel with debug info" | 
|  | depends on DEBUG_KERNEL | 
|  | help | 
|  | If you say Y here the resulting kernel image will include | 
|  | debugging info resulting in a larger kernel image. | 
|  | Say Y here only if you plan to debug the kernel. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config DEBUG_IOREMAP | 
|  | bool "Enable ioremap() debugging" | 
|  | depends on DEBUG_KERNEL && PARISC | 
|  | help | 
|  | Enabling this option will cause the kernel to distinguish between | 
|  | ioremapped and physical addresses.  It will print a backtrace (at | 
|  | most one every 10 seconds), hopefully allowing you to see which | 
|  | drivers need work.  Fixing all these problems is a prerequisite | 
|  | for turning on USE_HPPA_IOREMAP.  The warnings are harmless; | 
|  | the kernel has enough information to fix the broken drivers | 
|  | automatically, but we'd like to make it more efficient by not | 
|  | having to do that. | 
|  |  | 
|  | config DEBUG_FS | 
|  | bool "Debug Filesystem" | 
|  | depends on DEBUG_KERNEL && SYSFS | 
|  | help | 
|  | debugfs is a virtual file system that kernel developers use to put | 
|  | debugging files into.  Enable this option to be able to read and | 
|  | write to these files. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config DEBUG_VM | 
|  | bool "Debug VM" | 
|  | depends on DEBUG_KERNEL | 
|  | help | 
|  | Enable this to turn on extended checks in the virtual-memory system | 
|  | that may impact performance. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config FRAME_POINTER | 
|  | bool "Compile the kernel with frame pointers" | 
|  | depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML) | 
|  | default y if DEBUG_INFO && UML | 
|  | help | 
|  | If you say Y here the resulting kernel image will be slightly larger | 
|  | and slower, but it might give very useful debugging information on | 
|  | some architectures or if you use external debuggers. | 
|  | If you don't debug the kernel, you can say N. | 
|  |  | 
|  | config RCU_TORTURE_TEST | 
|  | tristate "torture tests for RCU" | 
|  | depends on DEBUG_KERNEL | 
|  | default n | 
|  | help | 
|  | This option provides a kernel module that runs torture tests | 
|  | on the RCU infrastructure.  The kernel module may be built | 
|  | after the fact on the running kernel to be tested, if desired. | 
|  |  | 
|  | Say Y here if you want RCU torture tests to start automatically | 
|  | at boot time (you probably don't). | 
|  | Say M if you want the RCU torture tests to build as a module. | 
|  | Say N if you are unsure. |