]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - lib/Kconfig.debug
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6.git] / lib / Kconfig.debug
index ff87ddc4cbd55309e48eb0114b231f4a6b8df7c7..6777153f18f31c3318b94283e986b5f2866ad783 100644 (file)
@@ -7,7 +7,19 @@ config PRINTK_TIME
          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.
+         in kernel startup.  Or add printk.time=1 at boot-time.
+         See Documentation/kernel-parameters.txt
+
+config DEFAULT_MESSAGE_LOGLEVEL
+       int "Default message log level (1-7)"
+       range 1 7
+       default "4"
+       help
+         Default log level for printk statements with no specified priority.
+
+         This was hard-coded to KERN_WARNING since at least 2.6.10 but folks
+         that are auditing their logs closely may want to set it to a lower
+         priority.
 
 config ENABLE_WARN_DEPRECATED
        bool "Enable __deprecated logic"
@@ -76,7 +88,6 @@ config UNUSED_SYMBOLS
 
 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
@@ -103,39 +114,34 @@ config HEADERS_CHECK
 
 config DEBUG_SECTION_MISMATCH
        bool "Enable full Section mismatch analysis"
-       depends on UNDEFINED || (BLACKFIN)
-       default y
-       # This option is on purpose disabled for now.
-       # 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
          references from one section to another section.
-         Linux will during link or during runtime drop some sections
-         and any use of code/data previously in these sections will
+         During linktime or runtime, some sections are dropped;
+         any use of code/data previously in these sections would
          most likely result in an oops.
-         In the code functions and variables are annotated with
-         __init, __devinit etc. (see full list in include/linux/init.h)
+         In the code, functions and variables are annotated with
+         __init, __devinit, etc. (see the full list in include/linux/init.h),
          which results in the code/data being placed in specific sections.
-         The section mismatch analysis is always done after a full
-         kernel build but enabling this option will in addition
-         do the following:
-         - Add the option -fno-inline-functions-called-once to gcc
-           When inlining a function annotated __init in a non-init
-           function we would lose the section information and thus
+         The section mismatch analysis is always performed after a full
+         kernel build, and enabling this option causes the following
+         additional steps to occur:
+         - Add the option -fno-inline-functions-called-once to gcc commands.
+           When inlining a function annotated with __init in a non-init
+           function, we would lose the section information and thus
            the analysis would not catch the illegal reference.
-           This option tells gcc to inline less but will also
-           result in a larger kernel.
-         - Run the section mismatch analysis for each module/built-in.o
-           When we run the section mismatch analysis on vmlinux.o we
+           This option tells gcc to inline less (but it does result in
+           a larger kernel).
+         - Run the section mismatch analysis for each module/built-in.o file.
+           When we run the section mismatch analysis on vmlinux.o, we
            lose valueble information about where the mismatch was
            introduced.
            Running the analysis for each module/built-in.o file
-           will tell where the mismatch happens much closer to the
-           source. The drawback is that we will report the same
-           mismatch at least twice.
-         - Enable verbose reporting from modpost to help solving
-           the section mismatches reported.
+           tells where the mismatch happens much closer to the
+           source. The drawback is that the same mismatch is
+           reported at least twice.
+         - Enable verbose reporting from modpost in order to help resolve
+           the section mismatches that are reported.
 
 config DEBUG_KERNEL
        bool "Kernel debugging"
@@ -160,21 +166,43 @@ config LOCKUP_DETECTOR
          hard and soft lockups.
 
          Softlockups are bugs that cause the kernel to loop in kernel
-         mode for more than 60 seconds, without giving other tasks a
+         mode for more than 20 seconds, without giving other tasks a
          chance to run.  The current stack trace is displayed upon
          detection and the system will stay locked up.
 
          Hardlockups are bugs that cause the CPU to loop in kernel mode
-         for more than 60 seconds, without letting other interrupts have a
+         for more than 10 seconds, without letting other interrupts have a
          chance to run.  The current stack trace is displayed upon detection
          and the system will stay locked up.
 
          The overhead should be minimal.  A periodic hrtimer runs to
-         generate interrupts and kick the watchdog task every 10-12 seconds.
-         An NMI is generated every 60 seconds or so to check for hardlockups.
+         generate interrupts and kick the watchdog task every 4 seconds.
+         An NMI is generated every 10 seconds or so to check for hardlockups.
+
+         The frequency of hrtimer and NMI events and the soft and hard lockup
+         thresholds can be controlled through the sysctl watchdog_thresh.
 
 config HARDLOCKUP_DETECTOR
-       def_bool LOCKUP_DETECTOR && PERF_EVENTS && HAVE_PERF_EVENTS_NMI
+       def_bool LOCKUP_DETECTOR && PERF_EVENTS && HAVE_PERF_EVENTS_NMI && \
+                !HAVE_NMI_WATCHDOG
+
+config BOOTPARAM_HARDLOCKUP_PANIC
+       bool "Panic (Reboot) On Hard Lockups"
+       depends on LOCKUP_DETECTOR
+       help
+         Say Y here to enable the kernel to panic on "hard lockups",
+         which are bugs that cause the kernel to loop in kernel
+         mode with interrupts disabled for more than 10 seconds (configurable
+         using the watchdog_thresh sysctl).
+
+         Say N if unsure.
+
+config BOOTPARAM_HARDLOCKUP_PANIC_VALUE
+       int
+       depends on LOCKUP_DETECTOR
+       range 0 1
+       default 0 if !BOOTPARAM_HARDLOCKUP_PANIC
+       default 1 if BOOTPARAM_HARDLOCKUP_PANIC
 
 config BOOTPARAM_SOFTLOCKUP_PANIC
        bool "Panic (Reboot) On Soft Lockups"
@@ -182,8 +210,8 @@ config BOOTPARAM_SOFTLOCKUP_PANIC
        help
          Say Y here to enable the kernel to panic on "soft lockups",
          which are bugs that cause the kernel to loop in kernel
-         mode for more than 60 seconds, without giving other tasks a
-         chance to run.
+         mode for more than 20 seconds (configurable using the watchdog_thresh
+         sysctl), without giving other tasks a chance to run.
 
          The panic can be used in combination with panic_timeout,
          to cause the system to reboot automatically after a
@@ -203,7 +231,7 @@ config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
 config DETECT_HUNG_TASK
        bool "Detect Hung Tasks"
        depends on DEBUG_KERNEL
-       default DETECT_SOFTLOCKUP
+       default LOCKUP_DETECTOR
        help
          Say Y here to enable the kernel to detect "hung tasks",
          which are bugs that cause the task to be stuck in
@@ -215,6 +243,22 @@ config DETECT_HUNG_TASK
          enabled then all held locks will also be reported. This
          feature has negligible overhead.
 
+config DEFAULT_HUNG_TASK_TIMEOUT
+       int "Default timeout for hung task detection (in seconds)"
+       depends on DETECT_HUNG_TASK
+       default 120
+       help
+         This option controls the default timeout (in seconds) used
+         to determine when a task has become non-responsive and should
+         be considered hung.
+
+         It can be adjusted at runtime via the kernel.hung_task_timeout_secs
+         sysctl or by writing a value to
+         /proc/sys/kernel/hung_task_timeout_secs.
+
+         A timeout of 0 disables the check.  The default is two minutes.
+         Keeping the default should be fine in most cases.
+
 config BOOTPARAM_HUNG_TASK_PANIC
        bool "Panic (Reboot) On Hung Tasks"
        depends on DETECT_HUNG_TASK
@@ -314,10 +358,18 @@ config DEBUG_OBJECTS_WORK
 
 config DEBUG_OBJECTS_RCU_HEAD
        bool "Debug RCU callbacks objects"
-       depends on DEBUG_OBJECTS && PREEMPT
+       depends on DEBUG_OBJECTS
        help
          Enable this to turn on debugging of RCU list heads (call_rcu() usage).
 
+config DEBUG_OBJECTS_PERCPU_COUNTER
+       bool "Debug percpu counter objects"
+       depends on DEBUG_OBJECTS
+       help
+         If you say Y here, additional code will be inserted into the
+         percpu counter routines to track the life time of percpu counter
+         objects and validate the percpu counter operations.
+
 config DEBUG_OBJECTS_ENABLE_DEFAULT
        int "debug_objects bootup default value (0-1)"
         range 0 1
@@ -354,7 +406,7 @@ config SLUB_DEBUG_ON
 config SLUB_STATS
        default n
        bool "Enable SLUB performance statistics"
-       depends on SLUB && SLUB_DEBUG && SYSFS
+       depends on SLUB && SYSFS
        help
          SLUB statistics are useful to debug SLUBs allocation behavior in
          order find ways to optimize the allocator. This should never be
@@ -366,10 +418,10 @@ config SLUB_STATS
 
 config DEBUG_KMEMLEAK
        bool "Kernel memory leak detector"
-       depends on DEBUG_KERNEL && EXPERIMENTAL && !MEMORY_HOTPLUG && \
-               (X86 || ARM || PPC || S390 || SPARC64 || SUPERH || MICROBLAZE)
+       depends on DEBUG_KERNEL && EXPERIMENTAL && \
+               (X86 || ARM || PPC || MIPS || S390 || SPARC64 || SUPERH || MICROBLAZE || TILE)
 
-       select DEBUG_FS if SYSFS
+       select DEBUG_FS
        select STACKTRACE if STACKTRACE_SUPPORT
        select KALLSYMS
        select CRC32
@@ -403,14 +455,19 @@ config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
 
 config DEBUG_KMEMLEAK_TEST
        tristate "Simple test for the kernel memory leak detector"
-       depends on DEBUG_KMEMLEAK
+       depends on DEBUG_KMEMLEAK && m
        help
-         Say Y or M here to build a test for the kernel memory leak
-         detector. This option enables a module that explicitly leaks
-         memory.
+         This option enables a module that explicitly leaks memory.
 
          If unsure, say N.
 
+config DEBUG_KMEMLEAK_DEFAULT_OFF
+       bool "Default kmemleak to off"
+       depends on DEBUG_KMEMLEAK
+       help
+         Say Y here to disable kmemleak by default. It can then be enabled
+         on the command line via kmemleak=on.
+
 config DEBUG_PREEMPT
        bool "Debug preemptible kernel"
        depends on DEBUG_KERNEL && PREEMPT && TRACE_IRQFLAGS_SUPPORT
@@ -442,6 +499,7 @@ config RT_MUTEX_TESTER
 config DEBUG_SPINLOCK
        bool "Spinlock and rw-lock debugging: basic checks"
        depends on DEBUG_KERNEL
+       select UNINLINE_SPIN_UNLOCK
        help
          Say Y here and build SMP to catch missing spinlock initialization
          and certain other kinds of spinlock errors commonly made.  This is
@@ -476,6 +534,7 @@ config PROVE_LOCKING
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
        select DEBUG_LOCK_ALLOC
+       select TRACE_IRQFLAGS
        default n
        help
         This feature enables the kernel to prove that all locking
@@ -533,6 +592,23 @@ config PROVE_RCU_REPEATEDLY
         disabling, allowing multiple RCU-lockdep warnings to be printed
         on a single reboot.
 
+        Say Y to allow multiple RCU-lockdep warnings per boot.
+
+        Say N if you are unsure.
+
+config SPARSE_RCU_POINTER
+       bool "RCU debugging: sparse-based checks for pointer usage"
+       default n
+       help
+        This feature enables the __rcu sparse annotation for
+        RCU-protected pointers.  This annotation will cause sparse
+        to flag any non-RCU used of annotated pointers.  This can be
+        helpful when debugging RCU usage.  Please note that this feature
+        is not intended to enforce code cleanliness; it is instead merely
+        a debugging aid.
+
+        Say Y to make sparse flag questionable use of RCU-protected pointers
+
         Say N if you are unsure.
 
 config LOCKDEP
@@ -573,18 +649,20 @@ config DEBUG_LOCKDEP
          of more runtime overhead.
 
 config TRACE_IRQFLAGS
-       depends on DEBUG_KERNEL
        bool
-       default y
-       depends on TRACE_IRQFLAGS_SUPPORT
-       depends on PROVE_LOCKING
+       help
+         Enables hooks to interrupt enabling and disabling for
+         either tracing or lock debugging.
 
-config DEBUG_SPINLOCK_SLEEP
-       bool "Spinlock debugging: sleep-inside-spinlock checking"
+config DEBUG_ATOMIC_SLEEP
+       bool "Sleep inside atomic section checking"
+       select PREEMPT_COUNT
        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.
+         noisy if they are called inside atomic sections: when a spinlock is
+         held, inside an rcu read side critical section, inside preempt disabled
+         sections, inside an interrupt, etc...
 
 config DEBUG_LOCKING_API_SELFTESTS
        bool "Locking API boot-time self-tests"
@@ -601,6 +679,15 @@ config STACKTRACE
        bool
        depends on STACKTRACE_SUPPORT
 
+config DEBUG_STACK_USAGE
+       bool "Stack utilization instrumentation"
+       depends on DEBUG_KERNEL
+       help
+         Enables the display of the minimum amount of free stack which each
+         task has ever had available in the sysrq-T and sysrq-P debug output.
+
+         This option will slow down process creation somewhat.
+
 config DEBUG_KOBJECT
        bool "kobject debugging"
        depends on DEBUG_KERNEL
@@ -616,10 +703,10 @@ config DEBUG_HIGHMEM
          Disable for production systems.
 
 config DEBUG_BUGVERBOSE
-       bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED
+       bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EXPERT
        depends on BUG
        depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \
-                  FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300
+                  FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300 || TILE
        default y
        help
          Say Y here to make BUG() panics output the file name and line number
@@ -688,8 +775,8 @@ config DEBUG_WRITECOUNT
          If unsure, say N.
 
 config DEBUG_MEMORY_INIT
-       bool "Debug memory initialisation" if EMBEDDED
-       default !EMBEDDED
+       bool "Debug memory initialisation" if EXPERT
+       default !EXPERT
        help
          Enable this for additional checks during memory initialisation.
          The sanity checks verify aspects of the VM such as the memory model
@@ -708,6 +795,15 @@ config DEBUG_LIST
 
          If unsure, say N.
 
+config TEST_LIST_SORT
+       bool "Linked list sorting test"
+       depends on DEBUG_KERNEL
+       help
+         Enable this to turn on 'list_sort()' function test. This test is
+         executed only once during system boot, so affects only boot time.
+
+         If unsure, say N.
+
 config DEBUG_SG
        bool "Debug SG table operations"
        depends on DEBUG_KERNEL
@@ -745,7 +841,7 @@ config DEBUG_CREDENTIALS
 
 #
 # Select this config option from the architecture Kconfig, if it
-# it is preferred to always offer frame pointers as a config
+# is preferred to always offer frame pointers as a config
 # option on the architecture (regardless of KERNEL_DEBUG):
 #
 config ARCH_WANT_FRAME_POINTERS
@@ -755,7 +851,7 @@ config ARCH_WANT_FRAME_POINTERS
 config FRAME_POINTER
        bool "Compile the kernel with frame pointers"
        depends on DEBUG_KERNEL && \
-               (CRIS || M68K || M68KNOMMU || FRV || UML || \
+               (CRIS || M68K || FRV || UML || \
                 AVR32 || SUPERH || BLACKFIN || MN10300) || \
                ARCH_WANT_FRAME_POINTERS
        default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
@@ -779,7 +875,7 @@ config BOOT_PRINTK_DELAY
          system, and then set "lpj=M" before setting "boot_delay=N".
          NOTE:  Using this option may adversely affect SMP systems.
          I.e., processors other than the first one may not boot up.
-         BOOT_PRINTK_DELAY also may cause DETECT_SOFTLOCKUP to detect
+         BOOT_PRINTK_DELAY also may cause LOCKUP_DETECTOR to detect
          what it believes to be lockup conditions.
 
 config RCU_TORTURE_TEST
@@ -813,22 +909,20 @@ config RCU_TORTURE_TEST_RUNNABLE
          Say N here if you want the RCU torture tests to start only
          after being manually enabled via /proc.
 
-config RCU_CPU_STALL_DETECTOR
-       bool "Check for stalled CPUs delaying RCU grace periods"
+config RCU_CPU_STALL_TIMEOUT
+       int "RCU CPU stall timeout in seconds"
        depends on TREE_RCU || TREE_PREEMPT_RCU
-       default y
+       range 3 300
+       default 60
        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 N if you want to disable such checks.
-
-         Say Y if you are unsure.
+         If a given RCU grace period extends more than the specified
+         number of seconds, a CPU stall warning is printed.  If the
+         RCU grace period persists, additional CPU stall warnings are
+         printed at more widely spaced intervals.
 
 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
+       depends on TREE_PREEMPT_RCU
        default y
        help
          This option causes RCU to printk detailed per-task information
@@ -838,6 +932,30 @@ config RCU_CPU_STALL_VERBOSE
 
          Say Y if you want to enable such checks.
 
+config RCU_CPU_STALL_INFO
+       bool "Print additional diagnostics on RCU CPU stall"
+       depends on (TREE_RCU || TREE_PREEMPT_RCU) && DEBUG_KERNEL
+       default n
+       help
+         For each stalled CPU that is aware of the current RCU grace
+         period, print out additional per-CPU diagnostic information
+         regarding scheduling-clock ticks, idle state, and,
+         for RCU_FAST_NO_HZ kernels, idle-entry state.
+
+         Say N if you are unsure.
+
+         Say Y if you want to enable such diagnostics.
+
+config RCU_TRACE
+       bool "Enable tracing for RCU"
+       depends on DEBUG_KERNEL
+       help
+         This option provides tracing in RCU which presents stats
+         in debugfs for debugging RCU implementation.
+
+         Say Y here if you want to enable RCU tracing
+         Say N if you are unsure.
+
 config KPROBES_SANITY_TEST
        bool "Kprobes sanity tests"
        depends on DEBUG_KERNEL
@@ -907,6 +1025,17 @@ config DEBUG_FORCE_WEAK_PER_CPU
          To ensure that generic code follows the above rules, this
          option forces all percpu variables to be defined as weak.
 
+config DEBUG_PER_CPU_MAPS
+       bool "Debug access to per_cpu maps"
+       depends on DEBUG_KERNEL
+       depends on SMP
+       help
+         Say Y to verify that the per_cpu map being accessed has
+         been set up. This adds a fair amount of code to kernel memory
+         and decreases performance.
+
+         Say N if unsure.
+
 config LKDTM
        tristate "Linux Kernel Dump Test Tool Module"
        depends on DEBUG_FS
@@ -971,6 +1100,17 @@ config FAIL_IO_TIMEOUT
          Only works with drivers that use the generic timeout handling,
          for others it wont do anything.
 
+config FAIL_MMC_REQUEST
+       bool "Fault-injection capability for MMC IO"
+       select DEBUG_FS
+       depends on FAULT_INJECTION && MMC
+       help
+         Provide fault-injection capability for MMC IO.
+         This will make the mmc core return data errors. This is
+         useful to test the error handling in the mmc block device
+         and to test how the mmc host driver handles retries from
+         the block device.
+
 config FAULT_INJECTION_DEBUG_FS
        bool "Debugfs entries for fault-injection capabilities"
        depends on FAULT_INJECTION && SYSFS && DEBUG_FS
@@ -982,31 +1122,26 @@ config FAULT_INJECTION_STACKTRACE_FILTER
        depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
        depends on !X86_64
        select STACKTRACE
-       select FRAME_POINTER if !PPC && !S390 && !MICROBLAZE
+       select FRAME_POINTER if !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND
        help
          Provide stacktrace filter for fault-injection capabilities
 
 config LATENCYTOP
        bool "Latency measuring infrastructure"
-       select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE
+       depends on HAVE_LATENCYTOP_SUPPORT
+       depends on DEBUG_KERNEL
+       depends on STACKTRACE_SUPPORT
+       depends on PROC_FS
+       select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND
        select KALLSYMS
        select KALLSYMS_ALL
        select STACKTRACE
        select SCHEDSTATS
        select SCHED_DEBUG
-       depends on HAVE_LATENCYTOP_SUPPORT
        help
          Enable this option if you want to use the LatencyTOP tool
          to find out which userspace is blocking on what kernel operations.
 
-config SYSCTL_SYSCALL_CHECK
-       bool "Sysctl checks"
-       depends on SYSCTL
-       ---help---
-         sys_sysctl uses binary paths that have been found challenging
-         to properly maintain and use. This enables checks that help
-         you to keep things correct.
-
 source mm/Kconfig.debug
 source kernel/trace/Kconfig
 
@@ -1141,8 +1276,24 @@ config ATOMIC64_SELFTEST
 
          If unsure, say N.
 
+config ASYNC_RAID6_TEST
+       tristate "Self test for hardware accelerated raid6 recovery"
+       depends on ASYNC_RAID6_RECOV
+       select ASYNC_MEMCPY
+       ---help---
+         This is a one-shot self test that permutes through the
+         recovery of all the possible two disk failure scenarios for a
+         N-disk array.  Recovery is performed with the asynchronous
+         raid6 recovery routines, and will optionally use an offload
+         engine if one is available.
+
+         If unsure, say N.
+
 source "samples/Kconfig"
 
 source "lib/Kconfig.kgdb"
 
 source "lib/Kconfig.kmemcheck"
+
+config TEST_KSTRTOX
+       tristate "Test kstrto*() family of functions at runtime"