linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / lib / Kconfig.debug
index 388af7c..a314e66 100644 (file)
@@ -1,14 +1,17 @@
 
-config DEBUG_KERNEL
-       bool "Kernel debugging"
-       depends on (ALPHA || ARM || CRIS || H8300 || X86 || IA64 || M32R || M68K || M68KNOMMU || MIPS || PARISC || PPC32 || PPC64 || ARCH_S390 || SUPERH || SUPERH64 || SPARC32 || SPARC64 || USERMODE || V850 || X86_64)
+config PRINTK_TIME
+       bool "Show timing information on printks"
        help
-         Say Y here if you are developing drivers or trying to debug and
-         identify kernel problems.
+         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 DEBUG_KERNEL && (ALPHA || ARM || X86 || IA64 || M32R || M68K || MIPS || PARISC || PPC32 || PPC64 || ARCH_S390 || SUPERH || SUPERH64 || SPARC32 || SPARC64 || X86_64 || USERMODE)
+       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
@@ -20,12 +23,47 @@ config MAGIC_SYSRQ
          keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
          unless you really know what this hack does.
 
-config MAGIC_SYSRQ
-       bool "Magic SysRq key"
-       depends on DEBUG_KERNEL && (H8300 || M68KNOMMU || V850)
+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
-         Enables console device to interpret special characters as
-         commands to dump state information.
+         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"
@@ -41,7 +79,7 @@ config SCHEDSTATS
 
 config DEBUG_SLAB
        bool "Debug memory allocations"
-       depends on DEBUG_KERNEL && (ALPHA || ARM || X86 || IA64 || M32R || M68K || MIPS || PARISC || PPC32 || PPC64 || ARCH_S390 || SPARC32 || SPARC64 || USERMODE || X86_64)
+       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
@@ -49,7 +87,7 @@ config DEBUG_SLAB
 
 config DEBUG_PREEMPT
        bool "Debug preemptible kernel"
-       depends on PREEMPT
+       depends on DEBUG_KERNEL && PREEMPT
        default y
        help
          If you say Y here then the kernel will use a debug variant of the
@@ -57,9 +95,17 @@ config DEBUG_PREEMPT
          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 && (ALPHA || ARM || X86 || IA64 || M32R || MIPS || PARISC || PPC32 || (SUPERH && !SUPERH64) || SPARC32 || SPARC64 || USERMODE || X86_64)
+       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
@@ -68,7 +114,7 @@ config DEBUG_SPINLOCK
 
 config DEBUG_SPINLOCK_SLEEP
        bool "Sleep-inside-spinlock checking"
-       depends on DEBUG_KERNEL && (X86 || IA64 || M32R || MIPS || PPC32 || PPC64 || ARCH_S390 || SPARC32 || SPARC64 || USERMODE)
+       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.
@@ -82,14 +128,15 @@ config DEBUG_KOBJECT
 
 config DEBUG_HIGHMEM
        bool "Highmem debugging"
-       depends on DEBUG_KERNEL && HIGHMEM && (X86 || PPC32 || MIPS || SPARC32)
+       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 ARM || ARM26 || M32R || M68K || SPARC32 || SPARC64 || (X86 && !X86_64)
+       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
@@ -98,24 +145,13 @@ config DEBUG_BUGVERBOSE
 
 config DEBUG_INFO
        bool "Compile the kernel with debug info"
-       depends on DEBUG_KERNEL && (ALPHA || CRIS || X86 || IA64 || M32R || M68K || MIPS || PARISC || PPC32 || PPC64 || ARCH_S390 || (SUPERH && !SUPERH64) || SPARC64 || V850 || X86_64)
+       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 use gdb to debug the kernel.
-         If you don't debug the kernel, you can say N.
-
-config DEBUG_INFO
-       bool "Enable kernel debugging symbols"
-       depends on DEBUG_KERNEL && USERMODE
-       help
-        When this is enabled, the User-Mode Linux binary will include
-        debugging symbols.  This enlarges the binary by a few megabytes,
-        but aids in tracking down kernel problems in UML.  It is required
-        if you intend to do any kernel development.
+         Say Y here only if you plan to debug the kernel.
 
-        If you're truly short on disk space or don't expect to report any
-        bugs back to the UML developers, say N, otherwise say Y.
+         If unsure, say N.
 
 config DEBUG_IOREMAP
        bool "Enable ioremap() debugging"
@@ -132,7 +168,7 @@ config DEBUG_IOREMAP
 
 config DEBUG_FS
        bool "Debug Filesystem"
-       depends on DEBUG_KERNEL
+       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
@@ -140,13 +176,49 @@ config DEBUG_FS
 
          If unsure, say N.
 
-if !X86_64
+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 X86 || CRIS || M68KNOMMU
+       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 will give very useful debugging information.
-         If you don't debug the kernel, you can say N, but we may not be able
-         to solve problems without frame pointers.
-endif
+         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 FORCED_INLINING
+       bool "Force gcc to inline functions marked 'inline'"
+       depends on DEBUG_KERNEL
+       default y
+       help
+         This option determines if the kernel forces gcc to inline the functions
+         developers have marked 'inline'. Doing so takes away freedom from gcc to
+         do what it thinks is best, which is desirable for the gcc 3.x series of
+         compilers. The gcc 4.x series have a rewritten inlining algorithm and
+         disabling this option will generate a smaller kernel there. Hopefully
+         this algorithm is so good that allowing gcc4 to make the decision can
+         become the default in the future, until then this option is there to
+         test gcc for this.
+
+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.