Merge tag 'for-linus-3.11-merge-window-part-2' of git://git.kernel.org/pub/scm/linux...
[cascardo/linux.git] / lib / Kconfig.debug
index 7154f79..88c8d98 100644 (file)
@@ -1,3 +1,4 @@
+menu "printk and dmesg options"
 
 config PRINTK_TIME
        bool "Show timing information on printks"
@@ -25,6 +26,123 @@ config DEFAULT_MESSAGE_LOGLEVEL
          that are auditing their logs closely may want to set it to a lower
          priority.
 
+config BOOT_PRINTK_DELAY
+       bool "Delay each boot printk message by N milliseconds"
+       depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
+       help
+         This build option allows you to read kernel boot messages
+         by inserting a short delay after each one.  The delay is
+         specified in milliseconds on the kernel command line,
+         using "boot_delay=N".
+
+         It is likely that you would also need to use "lpj=M" to preset
+         the "loops per jiffie" value.
+         See a previous boot log for the "lpj" value to use for your
+         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 LOCKUP_DETECTOR to detect
+         what it believes to be lockup conditions.
+
+config DYNAMIC_DEBUG
+       bool "Enable dynamic printk() support"
+       default n
+       depends on PRINTK
+       depends on DEBUG_FS
+       help
+
+         Compiles debug level messages into the kernel, which would not
+         otherwise be available at runtime. These messages can then be
+         enabled/disabled based on various levels of scope - per source file,
+         function, module, format string, and line number. This mechanism
+         implicitly compiles in all pr_debug() and dev_dbg() calls, which
+         enlarges the kernel text size by about 2%.
+
+         If a source file is compiled with DEBUG flag set, any
+         pr_debug() calls in it are enabled by default, but can be
+         disabled at runtime as below.  Note that DEBUG flag is
+         turned on by many CONFIG_*DEBUG* options.
+
+         Usage:
+
+         Dynamic debugging is controlled via the 'dynamic_debug/control' file,
+         which is contained in the 'debugfs' filesystem. Thus, the debugfs
+         filesystem must first be mounted before making use of this feature.
+         We refer the control file as: <debugfs>/dynamic_debug/control. This
+         file contains a list of the debug statements that can be enabled. The
+         format for each line of the file is:
+
+               filename:lineno [module]function flags format
+
+         filename : source file of the debug statement
+         lineno : line number of the debug statement
+         module : module that contains the debug statement
+         function : function that contains the debug statement
+          flags : '=p' means the line is turned 'on' for printing
+          format : the format used for the debug statement
+
+         From a live system:
+
+               nullarbor:~ # cat <debugfs>/dynamic_debug/control
+               # filename:lineno [module]function flags format
+               fs/aio.c:222 [aio]__put_ioctx =_ "__put_ioctx:\040freeing\040%p\012"
+               fs/aio.c:248 [aio]ioctx_alloc =_ "ENOMEM:\040nr_events\040too\040high\012"
+               fs/aio.c:1770 [aio]sys_io_cancel =_ "calling\040cancel\012"
+
+         Example usage:
+
+               // enable the message at line 1603 of file svcsock.c
+               nullarbor:~ # echo -n 'file svcsock.c line 1603 +p' >
+                                               <debugfs>/dynamic_debug/control
+
+               // enable all the messages in file svcsock.c
+               nullarbor:~ # echo -n 'file svcsock.c +p' >
+                                               <debugfs>/dynamic_debug/control
+
+               // enable all the messages in the NFS server module
+               nullarbor:~ # echo -n 'module nfsd +p' >
+                                               <debugfs>/dynamic_debug/control
+
+               // enable all 12 messages in the function svc_process()
+               nullarbor:~ # echo -n 'func svc_process +p' >
+                                               <debugfs>/dynamic_debug/control
+
+               // disable all 12 messages in the function svc_process()
+               nullarbor:~ # echo -n 'func svc_process -p' >
+                                               <debugfs>/dynamic_debug/control
+
+         See Documentation/dynamic-debug-howto.txt for additional information.
+
+endmenu # "printk and dmesg options"
+
+menu "Compile-time checks and compiler options"
+
+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.
+         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_INFO_REDUCED
+       bool "Reduce debugging information"
+       depends on DEBUG_INFO
+       help
+         If you say Y here gcc is instructed to generate less debugging
+         information for structure types. This means that tools that
+         need full debugging information (like kgdb or systemtap) won't
+         be happy. But if you merely need debugging information to
+         resolve line numbers there is no loss. Advantage is that
+         build directory object sizes shrink dramatically over a full
+         DEBUG_INFO build and compile times are reduced too.
+         Only works with newer gcc versions.
+
 config ENABLE_WARN_DEPRECATED
        bool "Enable __deprecated logic"
        default y
@@ -52,20 +170,6 @@ config FRAME_WARN
          Setting it to 0 disables the warning.
          Requires gcc 4.4
 
-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 STRIP_ASM_SYMS
        bool "Strip assembler-generated symbols during link"
        default n
@@ -156,222 +260,90 @@ config DEBUG_SECTION_MISMATCH
          - Enable verbose reporting from modpost in order to help resolve
            the section mismatches that are reported.
 
-config DEBUG_KERNEL
-       bool "Kernel debugging"
+#
+# Select this config option from the architecture Kconfig, if it
+# is preferred to always offer frame pointers as a config
+# option on the architecture (regardless of KERNEL_DEBUG):
+#
+config ARCH_WANT_FRAME_POINTERS
+       bool
        help
-         Say Y here if you are developing drivers or trying to debug and
-         identify kernel problems.
 
-config DEBUG_SHIRQ
-       bool "Debug shared IRQ handlers"
-       depends on DEBUG_KERNEL && GENERIC_HARDIRQS
+config FRAME_POINTER
+       bool "Compile the kernel with frame pointers"
+       depends on DEBUG_KERNEL && \
+               (CRIS || M68K || FRV || UML || \
+                AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || \
+               ARCH_WANT_FRAME_POINTERS
+       default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
        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.
+         If you say Y here the resulting kernel image will be slightly
+         larger and slower, but it gives very useful debugging information
+         in case of kernel bugs. (precise oopses/stacktraces/warnings)
 
-config LOCKUP_DETECTOR
-       bool "Detect Hard and Soft Lockups"
-       depends on DEBUG_KERNEL && !S390
+config DEBUG_FORCE_WEAK_PER_CPU
+       bool "Force weak per-cpu definitions"
+       depends on DEBUG_KERNEL
        help
-         Say Y here to enable the kernel to act as a watchdog to detect
-         hard and soft lockups.
-
-         Softlockups are bugs that cause the kernel to loop in kernel
-         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.
+         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.
 
-         Hardlockups are bugs that cause the CPU to loop in kernel mode
-         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.
+         1. percpu symbols must be unique whether static or not
+         2. percpu variables can't be defined inside a function
 
-         The overhead should be minimal.  A periodic hrtimer runs to
-         generate interrupts and kick the watchdog task every 4 seconds.
-         An NMI is generated every 10 seconds or so to check for hardlockups.
+         To ensure that generic code follows the above rules, this
+         option forces all percpu variables to be defined as weak.
 
-         The frequency of hrtimer and NMI events and the soft and hard lockup
-         thresholds can be controlled through the sysctl watchdog_thresh.
+endmenu # "Compiler options"
 
-config HARDLOCKUP_DETECTOR
-       def_bool y
-       depends on LOCKUP_DETECTOR && !HAVE_NMI_WATCHDOG
-       depends on PERF_EVENTS && HAVE_PERF_EVENTS_NMI
+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 BOOTPARAM_HARDLOCKUP_PANIC
-       bool "Panic (Reboot) On Hard Lockups"
-       depends on HARDLOCKUP_DETECTOR
+config DEBUG_KERNEL
+       bool "Kernel debugging"
        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 Y here if you are developing drivers or trying to debug and
+         identify kernel problems.
 
-         Say N if unsure.
+menu "Memory Debugging"
 
-config BOOTPARAM_HARDLOCKUP_PANIC_VALUE
-       int
-       depends on HARDLOCKUP_DETECTOR
-       range 0 1
-       default 0 if !BOOTPARAM_HARDLOCKUP_PANIC
-       default 1 if BOOTPARAM_HARDLOCKUP_PANIC
+source mm/Kconfig.debug
 
-config BOOTPARAM_SOFTLOCKUP_PANIC
-       bool "Panic (Reboot) On Soft Lockups"
-       depends on LOCKUP_DETECTOR
+config DEBUG_OBJECTS
+       bool "Debug object operations"
+       depends on DEBUG_KERNEL
        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 20 seconds (configurable using the watchdog_thresh
-         sysctl), without giving other tasks a chance to run.
+         If you say Y here, additional code will be inserted into the
+         kernel to track the life time of various objects and validate
+         the operations on those objects.
 
-         The panic can be used in combination with panic_timeout,
-         to cause the system to reboot automatically after a
-         lockup has been detected. This feature is useful for
-         high-availability systems that have uptime guarantees and
-         where a lockup must be resolved ASAP.
+config DEBUG_OBJECTS_SELFTEST
+       bool "Debug objects selftest"
+       depends on DEBUG_OBJECTS
+       help
+         This enables the selftest of the object debug code.
 
-         Say N if unsure.
-
-config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
-       int
-       depends on LOCKUP_DETECTOR
-       range 0 1
-       default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC
-       default 1 if BOOTPARAM_SOFTLOCKUP_PANIC
-
-config PANIC_ON_OOPS
-       bool "Panic on Oops"
-       help
-         Say Y here to enable the kernel to panic when it oopses. This
-         has the same effect as setting oops=panic on the kernel command
-         line.
-
-         This feature is useful to ensure that the kernel does not do
-         anything erroneous after an oops which could result in data
-         corruption or other issues.
-
-         Say N if unsure.
-
-config PANIC_ON_OOPS_VALUE
-       int
-       range 0 1
-       default 0 if !PANIC_ON_OOPS
-       default 1 if PANIC_ON_OOPS
-
-config DETECT_HUNG_TASK
-       bool "Detect Hung Tasks"
-       depends on DEBUG_KERNEL
-       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
-         uninterruptible "D" state indefinitiley.
-
-         When a hung task is detected, the kernel will print the
-         current stack trace (which you should report), but the
-         task will stay in uninterruptible state. If lockdep is
-         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
-       help
-         Say Y here to enable the kernel to panic on "hung tasks",
-         which are bugs that cause the kernel to leave a task stuck
-         in uninterruptible "D" state.
-
-         The panic can be used in combination with panic_timeout,
-         to cause the system to reboot automatically after a
-         hung task has been detected. This feature is useful for
-         high-availability systems that have uptime guarantees and
-         where a hung tasks must be resolved ASAP.
-
-         Say N if unsure.
-
-config BOOTPARAM_HUNG_TASK_PANIC_VALUE
-       int
-       depends on DETECT_HUNG_TASK
-       range 0 1
-       default 0 if !BOOTPARAM_HUNG_TASK_PANIC
-       default 1 if BOOTPARAM_HUNG_TASK_PANIC
-
-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
-       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 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_OBJECTS
-       bool "Debug object operations"
-       depends on DEBUG_KERNEL
-       help
-         If you say Y here, additional code will be inserted into the
-         kernel to track the life time of various objects and validate
-         the operations on those objects.
-
-config DEBUG_OBJECTS_SELFTEST
-       bool "Debug objects selftest"
-       depends on DEBUG_OBJECTS
-       help
-         This enables the selftest of the object debug code.
-
-config DEBUG_OBJECTS_FREE
-       bool "Debug objects in freed memory"
-       depends on DEBUG_OBJECTS
-       help
-         This enables checks whether a k/v free operation frees an area
-         which contains an object which has not been deactivated
-         properly. This can make kmalloc/kfree-intensive workloads
-         much slower.
+config DEBUG_OBJECTS_FREE
+       bool "Debug objects in freed memory"
+       depends on DEBUG_OBJECTS
+       help
+         This enables checks whether a k/v free operation frees an area
+         which contains an object which has not been deactivated
+         properly. This can make kmalloc/kfree-intensive workloads
+         much slower.
 
 config DEBUG_OBJECTS_TIMERS
        bool "Debug timer objects"
@@ -469,38 +441,351 @@ 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.
+         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 && m
+       help
+         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_STACK_USAGE
+       bool "Stack utilization instrumentation"
+       depends on DEBUG_KERNEL && !IA64 && !PARISC && !METAG
+       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_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 DEBUG_VM_RB
+       bool "Debug VM red-black trees"
+       depends on DEBUG_VM
+       help
+         Enable this to turn on more extended checks in the virtual-memory
+         system that may impact performance.
+
+         If unsure, say N.
+
+config DEBUG_VIRTUAL
+       bool "Debug VM translations"
+       depends on DEBUG_KERNEL && X86
+       help
+         Enable some costly sanity checks in virtual to page code. This can
+         catch mistakes with virt_to_page() and friends.
+
+         If unsure, say N.
+
+config DEBUG_NOMMU_REGIONS
+       bool "Debug the global anon/private NOMMU mapping region tree"
+       depends on DEBUG_KERNEL && !MMU
+       help
+         This option causes the global tree of anonymous and private mapping
+         regions to be regularly checked for invalid topology.
+
+config DEBUG_MEMORY_INIT
+       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
+         and other information provided by the architecture. Verbose
+         information will be printed at KERN_DEBUG loglevel depending
+         on the mminit_loglevel= command-line option.
+
+         If unsure, say Y
+
+config MEMORY_NOTIFIER_ERROR_INJECT
+       tristate "Memory hotplug notifier error injection module"
+       depends on MEMORY_HOTPLUG_SPARSE && NOTIFIER_ERROR_INJECTION
+       help
+         This option provides the ability to inject artificial errors to
+         memory hotplug notifier chain callbacks.  It is controlled through
+         debugfs interface under /sys/kernel/debug/notifier-error-inject/memory
+
+         If the notifier call chain should be failed with some events
+         notified, write the error code to "actions/<notifier event>/error".
+
+         Example: Inject memory hotplug offline error (-12 == -ENOMEM)
+
+         # cd /sys/kernel/debug/notifier-error-inject/memory
+         # echo -12 > actions/MEM_GOING_OFFLINE/error
+         # echo offline > /sys/devices/system/memory/memoryXXX/state
+         bash: echo: write error: Cannot allocate memory
+
+         To compile this code as a module, choose M here: the module will
+         be called memory-notifier-error-inject.
+
+         If unsure, say N.
+
+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 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 HAVE_DEBUG_STACKOVERFLOW
+       bool
+
+config DEBUG_STACKOVERFLOW
+       bool "Check for stack overflows"
+       depends on DEBUG_KERNEL && HAVE_DEBUG_STACKOVERFLOW
+       ---help---
+         Say Y here if you want to check for overflows of kernel, IRQ
+         and exception stacks (if your archicture uses them). This
+         option will show detailed messages if free stack space drops
+         below a certain limit.
+
+         These kinds of bugs usually occur when call-chains in the
+         kernel get too deep, especially when interrupts are
+         involved.
+
+         Use this in cases where you see apparently random memory
+         corruption, especially if it appears in 'struct thread_info'
+
+         If in doubt, say "N".
+
+source "lib/Kconfig.kmemcheck"
+
+endmenu # "Memory Debugging"
+
+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.
+
+menu "Debug Lockups and Hangs"
+
+config LOCKUP_DETECTOR
+       bool "Detect Hard and Soft Lockups"
+       depends on DEBUG_KERNEL && !S390
+       help
+         Say Y here to enable the kernel to act as a watchdog to detect
+         hard and soft lockups.
+
+         Softlockups are bugs that cause the kernel to loop in kernel
+         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 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 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 y
+       depends on LOCKUP_DETECTOR && !HAVE_NMI_WATCHDOG
+       depends on PERF_EVENTS && HAVE_PERF_EVENTS_NMI
+
+config BOOTPARAM_HARDLOCKUP_PANIC
+       bool "Panic (Reboot) On Hard Lockups"
+       depends on HARDLOCKUP_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 HARDLOCKUP_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"
+       depends on LOCKUP_DETECTOR
+       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 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
+         lockup has been detected. This feature is useful for
+         high-availability systems that have uptime guarantees and
+         where a lockup must be resolved ASAP.
+
+         Say N if unsure.
+
+config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
+       int
+       depends on LOCKUP_DETECTOR
+       range 0 1
+       default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC
+       default 1 if BOOTPARAM_SOFTLOCKUP_PANIC
+
+config DETECT_HUNG_TASK
+       bool "Detect Hung Tasks"
+       depends on DEBUG_KERNEL
+       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
+         uninterruptible "D" state indefinitiley.
+
+         When a hung task is detected, the kernel will print the
+         current stack trace (which you should report), but the
+         task will stay in uninterruptible state. If lockdep is
+         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
+       help
+         Say Y here to enable the kernel to panic on "hung tasks",
+         which are bugs that cause the kernel to leave a task stuck
+         in uninterruptible "D" state.
+
+         The panic can be used in combination with panic_timeout,
+         to cause the system to reboot automatically after a
+         hung task has been detected. This feature is useful for
+         high-availability systems that have uptime guarantees and
+         where a hung tasks must be resolved ASAP.
+
+         Say N if unsure.
 
-         In order to access the kmemleak file, debugfs needs to be
-         mounted (usually at /sys/kernel/debug).
+config BOOTPARAM_HUNG_TASK_PANIC_VALUE
+       int
+       depends on DETECT_HUNG_TASK
+       range 0 1
+       default 0 if !BOOTPARAM_HUNG_TASK_PANIC
+       default 1 if BOOTPARAM_HUNG_TASK_PANIC
 
-config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
-       int "Maximum kmemleak early log entries"
-       depends on DEBUG_KMEMLEAK
-       range 200 40000
-       default 400
+endmenu # "Debug lockups and hangs"
+
+config PANIC_ON_OOPS
+       bool "Panic on Oops"
        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.
+         Say Y here to enable the kernel to panic when it oopses. This
+         has the same effect as setting oops=panic on the kernel command
+         line.
 
-config DEBUG_KMEMLEAK_TEST
-       tristate "Simple test for the kernel memory leak detector"
-       depends on DEBUG_KMEMLEAK && m
+         This feature is useful to ensure that the kernel does not do
+         anything erroneous after an oops which could result in data
+         corruption or other issues.
+
+         Say N if unsure.
+
+config PANIC_ON_OOPS_VALUE
+       int
+       range 0 1
+       default 0 if !PANIC_ON_OOPS
+       default 1 if PANIC_ON_OOPS
+
+config SCHED_DEBUG
+       bool "Collect scheduler debugging info"
+       depends on DEBUG_KERNEL && PROC_FS
+       default y
        help
-         This option enables a module that explicitly leaks memory.
+         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.
 
-         If unsure, say N.
+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_KMEMLEAK_DEFAULT_OFF
-       bool "Default kmemleak to off"
-       depends on DEBUG_KMEMLEAK
+config TIMER_STATS
+       bool "Collect kernel timers statistics"
+       depends on DEBUG_KERNEL && PROC_FS
        help
-         Say Y here to disable kmemleak by default. It can then be enabled
-         on the command line via kmemleak=on.
+         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_PREEMPT
        bool "Debug preemptible kernel"
@@ -512,6 +797,8 @@ config DEBUG_PREEMPT
          if kernel code uses it in a preemption-unsafe way. Also, the kernel
          will detect preemption count underflows.
 
+menu "Lock Debugging (spinlocks, mutexes, etc...)"
+
 config DEBUG_RT_MUTEXES
        bool "RT Mutex debugging, deadlock detection"
        depends on DEBUG_KERNEL && RT_MUTEXES
@@ -654,12 +941,6 @@ config DEBUG_LOCKDEP
          additional runtime checks to debug itself, at the price
          of more runtime overhead.
 
-config TRACE_IRQFLAGS
-       bool
-       help
-         Enables hooks to interrupt enabling and disabling for
-         either tracing or lock debugging.
-
 config DEBUG_ATOMIC_SLEEP
        bool "Sleep inside atomic section checking"
        select PREEMPT_COUNT
@@ -681,18 +962,17 @@ config DEBUG_LOCKING_API_SELFTESTS
          The following locking APIs are covered: spinlocks, rwlocks,
          mutexes and rwsems.
 
-config STACKTRACE
-       bool
-       depends on STACKTRACE_SUPPORT
+endmenu # lock debugging
 
-config DEBUG_STACK_USAGE
-       bool "Stack utilization instrumentation"
-       depends on DEBUG_KERNEL && !IA64 && !PARISC && !METAG
+config TRACE_IRQFLAGS
+       bool
        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.
+         Enables hooks to interrupt enabling and disabling for
+         either tracing or lock debugging.
 
-         This option will slow down process creation somewhat.
+config STACKTRACE
+       bool
+       depends on STACKTRACE_SUPPORT
 
 config DEBUG_KOBJECT
        bool "kobject debugging"
@@ -701,13 +981,6 @@ config DEBUG_KOBJECT
          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 HAVE_DEBUG_BUGVERBOSE
        bool
 
@@ -720,66 +993,6 @@ config DEBUG_BUGVERBOSE
          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.
-         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_INFO_REDUCED
-       bool "Reduce debugging information"
-       depends on DEBUG_INFO
-       help
-         If you say Y here gcc is instructed to generate less debugging
-         information for structure types. This means that tools that
-         need full debugging information (like kgdb or systemtap) won't
-         be happy. But if you merely need debugging information to
-         resolve line numbers there is no loss. Advantage is that
-         build directory object sizes shrink dramatically over a full
-         DEBUG_INFO build and compile times are reduced too.
-         Only works with newer gcc versions.
-
-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 DEBUG_VM_RB
-       bool "Debug VM red-black trees"
-       depends on DEBUG_VM
-       help
-         Enable this to turn on more extended checks in the virtual-memory
-         system that may impact performance.
-
-         If unsure, say N.
-
-config DEBUG_VIRTUAL
-       bool "Debug VM translations"
-       depends on DEBUG_KERNEL && X86
-       help
-         Enable some costly sanity checks in virtual to page code. This can
-         catch mistakes with virt_to_page() and friends.
-
-         If unsure, say N.
-
-config DEBUG_NOMMU_REGIONS
-       bool "Debug the global anon/private NOMMU mapping region tree"
-       depends on DEBUG_KERNEL && !MMU
-       help
-         This option causes the global tree of anonymous and private mapping
-         regions to be regularly checked for invalid topology.
-
 config DEBUG_WRITECOUNT
        bool "Debug filesystem writers count"
        depends on DEBUG_KERNEL
@@ -790,18 +1003,6 @@ config DEBUG_WRITECOUNT
 
          If unsure, say N.
 
-config DEBUG_MEMORY_INIT
-       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
-         and other information provided by the architecture. Verbose
-         information will be printed at KERN_DEBUG loglevel depending
-         on the mminit_loglevel= command-line option.
-
-         If unsure, say Y
-
 config DEBUG_LIST
        bool "Debug linked list manipulation"
        depends on DEBUG_KERNEL
@@ -811,15 +1012,6 @@ 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
@@ -855,45 +1047,6 @@ config DEBUG_CREDENTIALS
 
          If unsure, say N.
 
-#
-# Select this config option from the architecture Kconfig, if it
-# is preferred to always offer frame pointers as a config
-# option on the architecture (regardless of KERNEL_DEBUG):
-#
-config ARCH_WANT_FRAME_POINTERS
-       bool
-       help
-
-config FRAME_POINTER
-       bool "Compile the kernel with frame pointers"
-       depends on DEBUG_KERNEL && \
-               (CRIS || M68K || FRV || UML || \
-                AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || \
-               ARCH_WANT_FRAME_POINTERS
-       default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
-       help
-         If you say Y here the resulting kernel image will be slightly
-         larger and slower, but it gives very useful debugging information
-         in case of kernel bugs. (precise oopses/stacktraces/warnings)
-
-config BOOT_PRINTK_DELAY
-       bool "Delay each boot printk message by N milliseconds"
-       depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
-       help
-         This build option allows you to read kernel boot messages
-         by inserting a short delay after each one.  The delay is
-         specified in milliseconds on the kernel command line,
-         using "boot_delay=N".
-
-         It is likely that you would also need to use "lpj=M" to preset
-         the "loops per jiffie" value.
-         See a previous boot log for the "lpj" value to use for your
-         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 LOCKUP_DETECTOR to detect
-         what it believes to be lockup conditions.
-
 menu "RCU Debugging"
 
 config PROVE_RCU
@@ -1019,46 +1172,19 @@ config RCU_CPU_STALL_INFO
 
          Say Y if you want to enable such diagnostics.
 
-config RCU_TRACE
-       bool "Enable tracing for RCU"
-       depends on DEBUG_KERNEL
-       select TRACE_CLOCK
-       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.
-
-endmenu # "RCU Debugging"
-
-config KPROBES_SANITY_TEST
-       bool "Kprobes sanity tests"
-       depends on DEBUG_KERNEL
-       depends on KPROBES
-       default n
-       help
-         This option provides for testing basic kprobes functionality on
-         boot. A sample kprobe, jprobe and kretprobe are inserted and
-         verified for functionality.
-
-         Say N if you are unsure.
-
-config BACKTRACE_SELF_TEST
-       tristate "Self test for the backtrace code"
+config RCU_TRACE
+       bool "Enable tracing for RCU"
        depends on DEBUG_KERNEL
-       default n
+       select TRACE_CLOCK
        help
-         This option provides a kernel module that can be used to test
-         the kernel stack backtrace code. This option is not useful
-         for distributions or general kernels, but only for kernel
-         developers working on architecture code.
-
-         Note that if you want to also test saved backtraces, you will
-         have to enable STACKTRACE as well.
+         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.
 
+endmenu # "RCU Debugging"
+
 config DEBUG_BLOCK_EXT_DEVT
         bool "Force extended block device numbers and spread them"
        depends on DEBUG_KERNEL
@@ -1086,47 +1212,6 @@ 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 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
-       depends on BLOCK
-       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
-       Documentation/fault-injection/provoke-crashes.txt
-
 config NOTIFIER_ERROR_INJECTION
        tristate "Notifier error injection"
        depends on DEBUG_KERNEL
@@ -1186,29 +1271,6 @@ config PM_NOTIFIER_ERROR_INJECT
 
          If unsure, say N.
 
-config MEMORY_NOTIFIER_ERROR_INJECT
-       tristate "Memory hotplug notifier error injection module"
-       depends on MEMORY_HOTPLUG_SPARSE && NOTIFIER_ERROR_INJECTION
-       help
-         This option provides the ability to inject artificial errors to
-         memory hotplug notifier chain callbacks.  It is controlled through
-         debugfs interface under /sys/kernel/debug/notifier-error-inject/memory
-
-         If the notifier call chain should be failed with some events
-         notified, write the error code to "actions/<notifier event>/error".
-
-         Example: Inject memory hotplug offline error (-12 == -ENOMEM)
-
-         # cd /sys/kernel/debug/notifier-error-inject/memory
-         # echo -12 > actions/MEM_GOING_OFFLINE/error
-         # echo offline > /sys/devices/system/memory/memoryXXX/state
-         bash: echo: write error: Cannot allocate memory
-
-         To compile this code as a module, choose M here: the module will
-         be called memory-notifier-error-inject.
-
-         If unsure, say N.
-
 config OF_RECONFIG_NOTIFIER_ERROR_INJECT
        tristate "OF reconfig notifier error injection module"
        depends on OF_DYNAMIC && NOTIFIER_ERROR_INJECTION
@@ -1323,9 +1385,61 @@ config DEBUG_STRICT_USER_COPY_CHECKS
 
          If unsure, say N.
 
-source mm/Kconfig.debug
 source kernel/trace/Kconfig
 
+menu "Runtime Testing"
+
+config LKDTM
+       tristate "Linux Kernel Dump Test Tool Module"
+       depends on DEBUG_FS
+       depends on BLOCK
+       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
+       Documentation/fault-injection/provoke-crashes.txt
+
+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 KPROBES_SANITY_TEST
+       bool "Kprobes sanity tests"
+       depends on DEBUG_KERNEL
+       depends on KPROBES
+       default n
+       help
+         This option provides for testing basic kprobes functionality on
+         boot. A sample kprobe, jprobe and kretprobe are inserted and
+         verified for functionality.
+
+         Say N if you are unsure.
+
+config BACKTRACE_SELF_TEST
+       tristate "Self test for the backtrace code"
+       depends on DEBUG_KERNEL
+       default n
+       help
+         This option provides a kernel module that can be used to test
+         the kernel stack backtrace code. This option is not useful
+         for distributions or general kernels, but only for kernel
+         developers working on architecture code.
+
+         Note that if you want to also test saved backtraces, you will
+         have to enable STACKTRACE as well.
+
+         Say N if you are unsure.
+
 config RBTREE_TEST
        tristate "Red-Black tree test"
        depends on m && DEBUG_KERNEL
@@ -1339,6 +1453,34 @@ config INTERVAL_TREE_TEST
        help
          A benchmark measuring the performance of the interval tree library
 
+config ATOMIC64_SELFTEST
+       bool "Perform an atomic64_t self-test at boot"
+       help
+         Enable this option to test the atomic64_t functions at boot.
+
+         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.
+
+config TEST_STRING_HELPERS
+       tristate "Test functions located in the string_helpers module at runtime"
+
+config TEST_KSTRTOX
+       tristate "Test kstrto*() family of functions at runtime"
+
+endmenu # runtime tests
+
 config PROVIDE_OHCI1394_DMA_INIT
        bool "Remote debugging over FireWire early on boot"
        depends on PCI && X86
@@ -1388,75 +1530,6 @@ config BUILD_DOCSRC
 
          Say N if you are unsure.
 
-config DYNAMIC_DEBUG
-       bool "Enable dynamic printk() support"
-       default n
-       depends on PRINTK
-       depends on DEBUG_FS
-       help
-
-         Compiles debug level messages into the kernel, which would not
-         otherwise be available at runtime. These messages can then be
-         enabled/disabled based on various levels of scope - per source file,
-         function, module, format string, and line number. This mechanism
-         implicitly compiles in all pr_debug() and dev_dbg() calls, which
-         enlarges the kernel text size by about 2%.
-
-         If a source file is compiled with DEBUG flag set, any
-         pr_debug() calls in it are enabled by default, but can be
-         disabled at runtime as below.  Note that DEBUG flag is
-         turned on by many CONFIG_*DEBUG* options.
-
-         Usage:
-
-         Dynamic debugging is controlled via the 'dynamic_debug/control' file,
-         which is contained in the 'debugfs' filesystem. Thus, the debugfs
-         filesystem must first be mounted before making use of this feature.
-         We refer the control file as: <debugfs>/dynamic_debug/control. This
-         file contains a list of the debug statements that can be enabled. The
-         format for each line of the file is:
-
-               filename:lineno [module]function flags format
-
-         filename : source file of the debug statement
-         lineno : line number of the debug statement
-         module : module that contains the debug statement
-         function : function that contains the debug statement
-          flags : '=p' means the line is turned 'on' for printing
-          format : the format used for the debug statement
-
-         From a live system:
-
-               nullarbor:~ # cat <debugfs>/dynamic_debug/control
-               # filename:lineno [module]function flags format
-               fs/aio.c:222 [aio]__put_ioctx =_ "__put_ioctx:\040freeing\040%p\012"
-               fs/aio.c:248 [aio]ioctx_alloc =_ "ENOMEM:\040nr_events\040too\040high\012"
-               fs/aio.c:1770 [aio]sys_io_cancel =_ "calling\040cancel\012"
-
-         Example usage:
-
-               // enable the message at line 1603 of file svcsock.c
-               nullarbor:~ # echo -n 'file svcsock.c line 1603 +p' >
-                                               <debugfs>/dynamic_debug/control
-
-               // enable all the messages in file svcsock.c
-               nullarbor:~ # echo -n 'file svcsock.c +p' >
-                                               <debugfs>/dynamic_debug/control
-
-               // enable all the messages in the NFS server module
-               nullarbor:~ # echo -n 'module nfsd +p' >
-                                               <debugfs>/dynamic_debug/control
-
-               // enable all 12 messages in the function svc_process()
-               nullarbor:~ # echo -n 'func svc_process +p' >
-                                               <debugfs>/dynamic_debug/control
-
-               // disable all 12 messages in the function svc_process()
-               nullarbor:~ # echo -n 'func svc_process -p' >
-                                               <debugfs>/dynamic_debug/control
-
-         See Documentation/dynamic-debug-howto.txt for additional information.
-
 config DMA_API_DEBUG
        bool "Enable debugging of DMA-API usage"
        depends on HAVE_DMA_API_DEBUG
@@ -1468,34 +1541,7 @@ config DMA_API_DEBUG
          This option causes a performance degredation.  Use only if you want
          to debug device drivers. If unsure, say N.
 
-config ATOMIC64_SELFTEST
-       bool "Perform an atomic64_t self-test at boot"
-       help
-         Enable this option to test the atomic64_t functions at boot.
-
-         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_STRING_HELPERS
-       tristate "Test functions located in the string_helpers module at runtime"
-
-config TEST_KSTRTOX
-       tristate "Test kstrto*() family of functions at runtime"