Merge tag 'metag-for-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan...
[cascardo/linux.git] / lib / Kconfig.debug
index 566cf2b..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
@@ -106,61 +210,390 @@ config DEBUG_FS
          debugging files into.  Enable this option to be able to read and
          write to these files.
 
-         For detailed documentation on the debugfs API, see
-         Documentation/DocBook/filesystems.
+         For detailed documentation on the debugfs API, see
+         Documentation/DocBook/filesystems.
+
+         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_SECTION_MISMATCH
+       bool "Enable full Section mismatch analysis"
+       help
+         The section mismatch analysis checks if there are illegal
+         references from one section to another section.
+         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, __cpuinit, 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 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 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
+           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.
+
+#
+# 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 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.
+
+endmenu # "Compiler options"
+
+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 DEBUG_KERNEL
+       bool "Kernel debugging"
+       help
+         Say Y here if you are developing drivers or trying to debug and
+         identify kernel problems.
+
+menu "Memory Debugging"
+
+source mm/Kconfig.debug
+
+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_TIMERS
+       bool "Debug timer objects"
+       depends on DEBUG_OBJECTS
+       help
+         If you say Y here, additional code will be inserted into the
+         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_RCU_HEAD
+       bool "Debug RCU callbacks objects"
+       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
+        default "1"
+        depends on DEBUG_OBJECTS
+        help
+          Debug objects boot parameter default value
+
+config DEBUG_SLAB
+       bool "Debug slab memory allocations"
+       depends on DEBUG_KERNEL && SLAB && !KMEMCHECK
+       help
+         Say Y here to have the kernel do limited verification on memory
+         allocation as well as poisoning memory on free to catch use of freed
+         memory. This can make kmalloc/kfree-intensive workloads much slower.
+
+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 && !KMEMCHECK
+       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 SLUB_STATS
+       default n
+       bool "Enable SLUB performance statistics"
+       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
+         enabled for production use since keeping statistics slows down
+         the allocator by a few percentage points. The slabinfo command
+         supports the determination of the most active slabs to figure
+         out which slabs are relevant to a particular load.
+         Try running: slabinfo -DA
+
+config HAVE_DEBUG_KMEMLEAK
+       bool
+
+config DEBUG_KMEMLEAK
+       bool "Kernel memory leak detector"
+       depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
+       select DEBUG_FS
+       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
+         similar to the Boehm's conservative garbage collector, the
+         difference being that the orphan objects are not freed but
+         only shown in /sys/kernel/debug/kmemleak. Enabling this
+         feature will introduce an overhead to memory
+         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 && 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 HEADERS_CHECK
-       bool "Run 'make headers_check' when building vmlinux"
-       depends on !UML
+config DEBUG_PER_CPU_MAPS
+       bool "Debug access to per_cpu maps"
+       depends on DEBUG_KERNEL
+       depends on SMP
        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.
+         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.
 
-         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.
+         Say N if unsure.
 
-config DEBUG_SECTION_MISMATCH
-       bool "Enable full Section mismatch analysis"
+config DEBUG_HIGHMEM
+       bool "Highmem debugging"
+       depends on DEBUG_KERNEL && HIGHMEM
        help
-         The section mismatch analysis checks if there are illegal
-         references from one section to another section.
-         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, __cpuinit, 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 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 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
-           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.
+         This options enables addition error checking for high memory systems.
+         Disable for production systems.
 
-config DEBUG_KERNEL
-       bool "Kernel debugging"
-       help
-         Say Y here if you are developing drivers or trying to debug and
-         identify kernel problems.
+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"
@@ -171,6 +604,8 @@ config DEBUG_SHIRQ
          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
@@ -242,25 +677,6 @@ config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
        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
@@ -310,197 +726,66 @@ config BOOTPARAM_HUNG_TASK_PANIC
 
 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_TIMERS
-       bool "Debug timer objects"
-       depends on DEBUG_OBJECTS
-       help
-         If you say Y here, additional code will be inserted into the
-         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_RCU_HEAD
-       bool "Debug RCU callbacks objects"
-       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
-        default "1"
-        depends on DEBUG_OBJECTS
-        help
-          Debug objects boot parameter default value
-
-config DEBUG_SLAB
-       bool "Debug slab memory allocations"
-       depends on DEBUG_KERNEL && SLAB && !KMEMCHECK
-       help
-         Say Y here to have the kernel do limited verification on memory
-         allocation as well as poisoning memory on free to catch use of freed
-         memory. This can make kmalloc/kfree-intensive workloads much slower.
-
-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 && !KMEMCHECK
-       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 SLUB_STATS
-       default n
-       bool "Enable SLUB performance statistics"
-       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
-         enabled for production use since keeping statistics slows down
-         the allocator by a few percentage points. The slabinfo command
-         supports the determination of the most active slabs to figure
-         out which slabs are relevant to a particular load.
-         Try running: slabinfo -DA
-
-config HAVE_DEBUG_KMEMLEAK
-       bool
-
-config DEBUG_KMEMLEAK
-       bool "Kernel memory leak detector"
-       depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
-       select DEBUG_FS
-       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
-         similar to the Boehm's conservative garbage collector, the
-         difference being that the orphan objects are not freed but
-         only shown in /sys/kernel/debug/kmemleak. Enabling this
-         feature will introduce an overhead to memory
-         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.
+       depends on DETECT_HUNG_TASK
+       range 0 1
+       default 0 if !BOOTPARAM_HUNG_TASK_PANIC
+       default 1 if BOOTPARAM_HUNG_TASK_PANIC
 
-         In order to access the kmemleak file, debugfs needs to be
-         mounted (usually at /sys/kernel/debug).
+endmenu # "Debug lockups and hangs"
 
-config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
-       int "Maximum kmemleak early log entries"
-       depends on DEBUG_KMEMLEAK
-       range 200 40000
-       default 400
+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
@@ -547,6 +834,19 @@ config DEBUG_MUTEXES
         This feature allows mutex semantics violations to be detected and
         reported.
 
+config DEBUG_WW_MUTEX_SLOWPATH
+       bool "Wait/wound mutex debugging: Slowpath testing"
+       depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
+       select DEBUG_LOCK_ALLOC
+       select DEBUG_SPINLOCK
+       select DEBUG_MUTEXES
+       help
+        This feature enables slowpath testing for w/w mutex users by
+        injecting additional -EDEADLK wound/backoff cases. Together with
+        the full mutex checks enabled with (CONFIG_PROVE_LOCKING) this
+        will test all possible w/w mutex interface abuse with the
+        exception of simply not acquiring all the required locks.
+
 config DEBUG_LOCK_ALLOC
        bool "Lock debugging: detect incorrect freeing of live locks"
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
@@ -641,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
@@ -668,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"
@@ -688,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
 
@@ -707,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
@@ -777,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
@@ -798,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
@@ -842,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
@@ -1006,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
@@ -1073,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
@@ -1173,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
@@ -1310,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
@@ -1326,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
@@ -1375,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
@@ -1455,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"