Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
[linux-2.6.git] / lib / Kconfig.debug
index 399ba81..935248b 100644 (file)
@@ -50,6 +50,14 @@ config MAGIC_SYSRQ
          keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
          unless you really know what this hack does.
 
+config STRIP_ASM_SYMS
+       bool "Strip assembler-generated symbols during link"
+       default n
+       help
+         Strip internal assembler-generated symbols during a link (symbols
+         that look like '.Lxxx') so they don't pollute the output of
+         get_wchan() and suchlike.
+
 config UNUSED_SYMBOLS
        bool "Enable unused/obsolete exported symbols"
        default y if X86
@@ -95,9 +103,10 @@ config HEADERS_CHECK
 
 config DEBUG_SECTION_MISMATCH
        bool "Enable full Section mismatch analysis"
-       depends on UNDEFINED
+       depends on UNDEFINED || (BLACKFIN)
+       default y
        # This option is on purpose disabled for now.
-       # It will be enabled when we are down to a resonable number
+       # It will be enabled when we are down to a reasonable number
        # of section mismatch warnings (< 10 for an allyesconfig build)
        help
          The section mismatch analysis checks if there are illegal
@@ -290,6 +299,14 @@ config DEBUG_OBJECTS_TIMERS
          timer routines to track the life time of timer objects and
          validate the timer operations.
 
+config DEBUG_OBJECTS_WORK
+       bool "Debug work objects"
+       depends on DEBUG_OBJECTS
+       help
+         If you say Y here, additional code will be inserted into the
+         work queue routines to track the life time of work objects and
+         validate the work operations.
+
 config DEBUG_OBJECTS_ENABLE_DEFAULT
        int "debug_objects bootup default value (0-1)"
         range 0 1
@@ -338,13 +355,13 @@ config SLUB_STATS
 
 config DEBUG_KMEMLEAK
        bool "Kernel memory leak detector"
-       depends on DEBUG_KERNEL && EXPERIMENTAL && (X86 || ARM) && \
-               !MEMORY_HOTPLUG
-       select DEBUG_SLAB if SLAB
-       select SLUB_DEBUG if SLUB
+       depends on DEBUG_KERNEL && EXPERIMENTAL && !MEMORY_HOTPLUG && \
+               (X86 || ARM || PPC || S390 || SPARC64 || SUPERH || MICROBLAZE)
+
        select DEBUG_FS if SYSFS
        select STACKTRACE if STACKTRACE_SUPPORT
        select KALLSYMS
+       select CRC32
        help
          Say Y here if you want to enable the memory leak
          detector. The memory allocation/freeing is traced in a way
@@ -355,9 +372,24 @@ config DEBUG_KMEMLEAK
          allocations. See Documentation/kmemleak.txt for more
          details.
 
+         Enabling DEBUG_SLAB or SLUB_DEBUG may increase the chances
+         of finding leaks due to the slab objects poisoning.
+
          In order to access the kmemleak file, debugfs needs to be
          mounted (usually at /sys/kernel/debug).
 
+config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
+       int "Maximum kmemleak early log entries"
+       depends on DEBUG_KMEMLEAK
+       range 200 40000
+       default 400
+       help
+         Kmemleak must track all the memory allocations to avoid
+         reporting false positives. Since memory may be allocated or
+         freed before kmemleak is initialised, an early log buffer is
+         used to store these actions. If kmemleak reports "early log
+         buffer exceeded", please increase this value.
+
 config DEBUG_KMEMLEAK_TEST
        tristate "Simple test for the kernel memory leak detector"
        depends on DEBUG_KMEMLEAK
@@ -370,7 +402,7 @@ config DEBUG_KMEMLEAK_TEST
 
 config DEBUG_PREEMPT
        bool "Debug preemptible kernel"
-       depends on DEBUG_KERNEL && PREEMPT && (TRACE_IRQFLAGS_SUPPORT || PPC64)
+       depends on DEBUG_KERNEL && PREEMPT && TRACE_IRQFLAGS_SUPPORT
        default y
        help
          If you say Y here then the kernel will use a debug variant of the
@@ -468,11 +500,23 @@ config PROVE_LOCKING
 
         For more details, see Documentation/lockdep-design.txt.
 
+config PROVE_RCU
+       bool "RCU debugging: prove RCU correctness"
+       depends on PROVE_LOCKING
+       default n
+       help
+        This feature enables lockdep extensions that check for correct
+        use of RCU APIs.  This is currently under development.  Say Y
+        if you want to debug RCU usage or help work on the PROVE_RCU
+        feature.
+
+        Say N if you are unsure.
+
 config LOCKDEP
        bool
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
        select STACKTRACE
-       select FRAME_POINTER if !X86 && !MIPS && !PPC && !ARM_UNWIND && !S390
+       select FRAME_POINTER if !MIPS && !PPC && !ARM_UNWIND && !S390
        select KALLSYMS
        select KALLSYMS_ALL
 
@@ -489,6 +533,14 @@ config LOCK_STAT
 
         For more details, see Documentation/lockstat.txt
 
+        This also enables lock events required by "perf lock",
+        subcommand of perf.
+        If you want to use "perf lock", you also need to turn on
+        CONFIG_EVENT_TRACING.
+
+        CONFIG_LOCK_STAT defines "contended" and "acquired" lock events.
+        (CONFIG_LOCKDEP defines "acquire" and "release" events.)
+
 config DEBUG_LOCKDEP
        bool "Lock dependency engine debugging"
        depends on DEBUG_KERNEL && LOCKDEP
@@ -545,7 +597,7 @@ config DEBUG_BUGVERBOSE
        depends on BUG
        depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \
                   FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300
-       default !EMBEDDED
+       default y
        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
@@ -640,6 +692,21 @@ config DEBUG_NOTIFIERS
          This is a relatively cheap check but if you care about maximum
          performance, say N.
 
+config DEBUG_CREDENTIALS
+       bool "Debug credential management"
+       depends on DEBUG_KERNEL
+       help
+         Enable this to turn on some debug checking for credential
+         management.  The additional code keeps track of the number of
+         pointers from task_structs to any given cred struct, and checks to
+         see that this number never exceeds the usage count of the cred
+         struct.
+
+         Furthermore, if SELinux is enabled, this also checks that the
+         security pointer in the cred struct is never seen to be invalid.
+
+         If unsure, say N.
+
 #
 # Select this config option from the architecture Kconfig, if it
 # it is preferred to always offer frame pointers as a config
@@ -712,17 +779,29 @@ config RCU_TORTURE_TEST_RUNNABLE
 
 config RCU_CPU_STALL_DETECTOR
        bool "Check for stalled CPUs delaying RCU grace periods"
-       depends on CLASSIC_RCU || TREE_RCU
-       default n
+       depends on TREE_RCU || TREE_PREEMPT_RCU
+       default y
        help
          This option causes RCU to printk information on which
          CPUs are delaying the current grace period, but only when
          the grace period extends for excessive time periods.
 
-         Say Y if you want RCU to perform such checks.
+         Say N if you want to disable such checks.
+
+         Say Y if you are unsure.
+
+config RCU_CPU_STALL_VERBOSE
+       bool "Print additional per-task information for RCU_CPU_STALL_DETECTOR"
+       depends on RCU_CPU_STALL_DETECTOR && TREE_PREEMPT_RCU
+       default n
+       help
+         This option causes RCU to printk detailed per-task information
+         for any tasks that are stalling the current RCU grace period.
 
          Say N if you are unsure.
 
+         Say Y if you want to enable such checks.
+
 config KPROBES_SANITY_TEST
        bool "Kprobes sanity tests"
        depends on DEBUG_KERNEL
@@ -777,10 +856,24 @@ config DEBUG_BLOCK_EXT_DEVT
 
          Say N if you are unsure.
 
+config DEBUG_FORCE_WEAK_PER_CPU
+       bool "Force weak per-cpu definitions"
+       depends on DEBUG_KERNEL
+       help
+         s390 and alpha require percpu variables in modules to be
+         defined weak to work around addressing range issue which
+         puts the following two restrictions on percpu variable
+         definitions.
+
+         1. percpu symbols must be unique whether static or not
+         2. percpu variables can't be defined inside a function
+
+         To ensure that generic code follows the above rules, this
+         option forces all percpu variables to be defined as weak.
+
 config LKDTM
        tristate "Linux Kernel Dump Test Tool Module"
-       depends on DEBUG_KERNEL
-       depends on KPROBES
+       depends on DEBUG_FS
        depends on BLOCK
        default n
        help
@@ -791,7 +884,7 @@ config LKDTM
        called lkdtm.
 
        Documentation on how to use the module can be found in
-       drivers/misc/lkdtm.c
+       Documentation/fault-injection/provoke-crashes.txt
 
 config FAULT_INJECTION
        bool "Fault-injection framework"
@@ -860,7 +953,7 @@ config LATENCYTOP
 
 config SYSCTL_SYSCALL_CHECK
        bool "Sysctl checks"
-       depends on SYSCTL_SYSCALL
+       depends on SYSCTL
        ---help---
          sys_sysctl uses binary paths that have been found challenging
          to properly maintain and use. This enables checks that help
@@ -996,3 +1089,5 @@ config DMA_API_DEBUG
 source "samples/Kconfig"
 
 source "lib/Kconfig.kgdb"
+
+source "lib/Kconfig.kmemcheck"