[POWERPC] ppc64: support CONFIG_DEBUG_PREEMPT
[safe/jmp/linux-2.6] / lib / Kconfig.debug
index e7303fe..51e2fd0 100644 (file)
@@ -1,6 +1,7 @@
 
 config PRINTK_TIME
        bool "Show timing information on printks"
+       depends on PRINTK
        help
          Selecting this option causes timing information to be
          included in printk output.  This allows you to measure
@@ -46,32 +47,48 @@ config UNUSED_SYMBOLS
          you really need it, and what the merge plan to the mainline kernel for
          your module is.
 
+config DEBUG_FS
+       bool "Debug Filesystem"
+       depends on 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 HEADERS_CHECK
+       bool "Run 'make headers_check' when building vmlinux"
+       depends on !UML
+       help
+         This option will extract the user-visible kernel headers whenever
+         building the kernel, and will run basic sanity checks on them to
+         ensure that exported files do not attempt to include files which
+         were not exported, etc.
+
+         If you're making modifications to header files which are
+         relevant for userspace, say 'Y', and check the headers
+         exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in
+         your build tree), to make sure they're suitable.
+
 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 || LOCKDEP
-       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 DEBUG_SHIRQ
+       bool "Debug shared IRQ handlers"
+       depends on DEBUG_KERNEL && GENERIC_HARDIRQS
+       help
+         Enable this to generate a spurious interrupt as soon as a shared
+         interrupt handler is registered, and just before one is deregistered.
+         Drivers ought to be able to handle interrupts coming in at those
+         points; some don't and need to be caught.
 
 config DETECT_SOFTLOCKUP
        bool "Detect Soft Lockups"
-       depends on DEBUG_KERNEL
+       depends on DEBUG_KERNEL && !S390
        default y
        help
          Say Y here to enable the kernel to detect "soft lockups",
@@ -88,6 +105,15 @@ config DETECT_SOFTLOCKUP
           can be detected via the NMI-watchdog, on platforms that
           support it.)
 
+config SCHED_DEBUG
+       bool "Collect scheduler debugging info"
+       depends on DEBUG_KERNEL && PROC_FS
+       default y
+       help
+         If you say Y here, the /proc/sched_debug file will be provided
+         that can help debug the scheduler. The runtime overhead of this
+         option is minimal.
+
 config SCHEDSTATS
        bool "Collect scheduler statistics"
        depends on DEBUG_KERNEL && PROC_FS
@@ -100,6 +126,20 @@ config SCHEDSTATS
          application, you can say N to avoid the very slight overhead
          this adds.
 
+config TIMER_STATS
+       bool "Collect kernel timers statistics"
+       depends on DEBUG_KERNEL && PROC_FS
+       help
+         If you say Y here, additional code will be inserted into the
+         timer routines to collect statistics about kernel timers being
+         reprogrammed. The statistics can be read from /proc/timer_stats.
+         The statistics collection is started by writing 1 to /proc/timer_stats,
+         writing 0 stops it. This feature is useful to collect information
+         about timer usage patterns in kernel and userspace. This feature
+         is lightweight if enabled in the kernel config but not activated
+         (it defaults to deactivated on bootup and will only be activated
+         if some application like powertop activates it explicitly).
+
 config DEBUG_SLAB
        bool "Debug slab memory allocations"
        depends on DEBUG_KERNEL && SLAB
@@ -112,9 +152,22 @@ config DEBUG_SLAB_LEAK
        bool "Memory leak debugging"
        depends on DEBUG_SLAB
 
+config SLUB_DEBUG_ON
+       bool "SLUB debugging on by default"
+       depends on SLUB && SLUB_DEBUG
+       default n
+       help
+         Boot with debugging on by default. SLUB boots by default with
+         the runtime debug capabilities switched off. Enabling this is
+         equivalent to specifying the "slub_debug" parameter on boot.
+         There is no support for more fine grained debug control like
+         possible with slub_debug=xxx. SLUB debugging may be switched
+         off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
+         "slub_debug=-".
+
 config DEBUG_PREEMPT
        bool "Debug preemptible kernel"
-       depends on DEBUG_KERNEL && PREEMPT && TRACE_IRQFLAGS_SUPPORT
+       depends on DEBUG_KERNEL && PREEMPT && (TRACE_IRQFLAGS_SUPPORT || PPC64)
        default y
        help
          If you say Y here then the kernel will use a debug variant of the
@@ -156,19 +209,21 @@ config DEBUG_MUTEXES
         This feature allows mutex semantics violations to be detected and
         reported.
 
-config DEBUG_RWSEMS
-       bool "RW-sem debugging: basic checks"
+config DEBUG_SEMAPHORE
+       bool "Semaphore debugging"
        depends on DEBUG_KERNEL
+       depends on ALPHA || FRV
+       default n
        help
-        This feature allows read-write semaphore semantics violations to
-        be detected and reported.
+         If you say Y here then semaphore processing will issue lots of
+         verbose debugging messages.  If you suspect a semaphore problem or a
+         kernel hacker asks for this option then say Y.  Otherwise say N.
 
 config DEBUG_LOCK_ALLOC
        bool "Lock debugging: detect incorrect freeing of live locks"
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
-       select DEBUG_RWSEMS
        select LOCKDEP
        help
         This feature will check whether any held lock (spinlock, rwlock,
@@ -184,7 +239,6 @@ config PROVE_LOCKING
        select LOCKDEP
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
-       select DEBUG_RWSEMS
        select DEBUG_LOCK_ALLOC
        default n
        help
@@ -225,10 +279,21 @@ config LOCKDEP
        bool
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
        select STACKTRACE
-       select FRAME_POINTER if !X86
+       select FRAME_POINTER if !X86 && !MIPS
        select KALLSYMS
        select KALLSYMS_ALL
 
+config LOCK_STAT
+       bool "Lock usage statisitics"
+       depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
+       select LOCKDEP
+       select DEBUG_SPINLOCK
+       select DEBUG_MUTEXES
+       select DEBUG_LOCK_ALLOC
+       default n
+       help
+        This feature enables tracking lock contention points
+
 config DEBUG_LOCKDEP
        bool "Lock dependency engine debugging"
        depends on DEBUG_KERNEL && LOCKDEP
@@ -284,7 +349,7 @@ config DEBUG_HIGHMEM
 config DEBUG_BUGVERBOSE
        bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED
        depends on BUG
-       depends on ARM || ARM26 || AVR32 || M32R || M68K || SPARC32 || SPARC64 || X86_32 || FRV
+       depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || FRV || SUPERH || GENERIC_BUG || BFIN
        default !EMBEDDED
        help
          Say Y here to make BUG() panics output the file name and line number
@@ -297,20 +362,13 @@ config DEBUG_INFO
        help
           If you say Y here the resulting kernel image will include
          debugging info resulting in a larger kernel image.
+         This adds debug symbols to the kernel and modules (gcc -g), and
+         is needed if you intend to use kernel crashdump or binary object
+         tools like crash, kgdb, LKCD, gdb, etc on the kernel.
          Say Y here only if you plan to debug the kernel.
 
          If unsure, say N.
 
-config DEBUG_FS
-       bool "Debug Filesystem"
-       depends on 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
@@ -320,9 +378,18 @@ config DEBUG_VM
 
          If unsure, say N.
 
+config DEBUG_LIST
+       bool "Debug linked list manipulation"
+       depends on DEBUG_KERNEL
+       help
+         Enable this to turn on extended checks in the linked-list
+         walking routines.
+
+         If unsure, say N.
+
 config FRAME_POINTER
        bool "Compile the kernel with frame pointers"
-       depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390 || AVR32 || SUPERH)
+       depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390 || AVR32 || SUPERH || BFIN)
        default y if DEBUG_INFO && UML
        help
          If you say Y here the resulting kernel image will be slightly larger
@@ -330,24 +397,6 @@ config FRAME_POINTER
          some architectures or if you use external debuggers.
          If you don't debug the kernel, you can say N.
 
-config UNWIND_INFO
-       bool "Compile the kernel with frame unwind information"
-       depends on !IA64 && !PARISC
-       depends on !MODULES || !(MIPS || PPC || SUPERH || V850)
-       help
-         If you say Y here the resulting kernel image will be slightly larger
-         but not slower, and 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 unwind information or frame pointers.
-
-config STACK_UNWIND
-       bool "Stack unwind support"
-       depends on UNWIND_INFO
-       depends on X86
-       help
-         This enables more precise stack traces, omitting all unrelated
-         occurrences of pointers into kernel code from the dump.
-
 config FORCED_INLINING
        bool "Force gcc to inline functions marked 'inline'"
        depends on DEBUG_KERNEL
@@ -365,13 +414,67 @@ config FORCED_INLINING
 config RCU_TORTURE_TEST
        tristate "torture tests for RCU"
        depends on DEBUG_KERNEL
+       depends on m
        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.
+
+config LKDTM
+       tristate "Linux Kernel Dump Test Tool Module"
+       depends on DEBUG_KERNEL
+       depends on KPROBES
+       default n
+       help
+       This module enables testing of the different dumping mechanisms by
+       inducing system failures at predefined crash points.
+       If you don't need it: say N
+       Choose M here to compile this code as a module. The module will be
+       called lkdtm.
+
+       Documentation on how to use the module can be found in
+       drivers/misc/lkdtm.c
+
+config FAULT_INJECTION
+       bool "Fault-injection framework"
+       depends on DEBUG_KERNEL
+       help
+         Provide fault-injection framework.
+         For more details, see Documentation/fault-injection/.
+
+config FAILSLAB
+       bool "Fault-injection capability for kmalloc"
+       depends on FAULT_INJECTION
+       help
+         Provide fault-injection capability for kmalloc.
+
+config FAIL_PAGE_ALLOC
+       bool "Fault-injection capabilitiy for alloc_pages()"
+       depends on FAULT_INJECTION
+       help
+         Provide fault-injection capability for alloc_pages().
+
+config FAIL_MAKE_REQUEST
+       bool "Fault-injection capability for disk IO"
+       depends on FAULT_INJECTION
+       help
+         Provide fault-injection capability for disk IO.
+
+config FAULT_INJECTION_DEBUG_FS
+       bool "Debugfs entries for fault-injection capabilities"
+       depends on FAULT_INJECTION && SYSFS && DEBUG_FS
+       help
+         Enable configuration of fault-injection capabilities via debugfs.
+
+config FAULT_INJECTION_STACKTRACE_FILTER
+       bool "stacktrace filter for fault-injection capabilities"
+       depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
+       depends on !X86_64
+       select STACKTRACE
+       select FRAME_POINTER
+       help
+         Provide stacktrace filter for fault-injection capabilities