Kconfig: clean up the long arch list for the DEBUG_KMEMLEAK config option
[linux-3.10.git] / lib / Kconfig.debug
index e80d6bf..736db39 100644 (file)
@@ -3,11 +3,27 @@ config PRINTK_TIME
        bool "Show timing information on printks"
        depends on PRINTK
        help
-         Selecting this option causes timing information to be
-         included in printk output.  This allows you to measure
-         the interval between kernel operations, including bootup
-         operations.  This is useful for identifying long delays
-         in kernel startup.
+         Selecting this option causes time stamps of the printk()
+         messages to be added to the output of the syslog() system
+         call and at the console.
+
+         The timestamp is always recorded internally, and exported
+         to /dev/kmsg. This flag just specifies if the timestamp should
+         be included, not that the timestamp is recorded.
+
+         The behavior is also controlled by the kernel command line
+         parameter printk.time=1. See Documentation/kernel-parameters.txt
+
+config DEFAULT_MESSAGE_LOGLEVEL
+       int "Default message log level (1-7)"
+       range 1 7
+       default "4"
+       help
+         Default log level for printk statements with no specified priority.
+
+         This was hard-coded to KERN_WARNING since at least 2.6.10 but folks
+         that are auditing their logs closely may want to set it to a lower
+         priority.
 
 config ENABLE_WARN_DEPRECATED
        bool "Enable __deprecated logic"
@@ -58,6 +74,15 @@ config STRIP_ASM_SYMS
          that look like '.Lxxx') so they don't pollute the output of
          get_wchan() and suchlike.
 
+config READABLE_ASM
+        bool "Generate readable assembler code"
+        depends on DEBUG_KERNEL
+        help
+          Disable some compiler optimizations that tend to generate human unreadable
+          assembler output. This may make the kernel slightly slower, but it helps
+          to keep kernel developers who have to stare a lot at assembler listings
+          sane.
+
 config UNUSED_SYMBOLS
        bool "Enable unused/obsolete exported symbols"
        default y if X86
@@ -76,7 +101,6 @@ config UNUSED_SYMBOLS
 
 config DEBUG_FS
        bool "Debug Filesystem"
-       depends on SYSFS
        help
          debugfs is a virtual file system that kernel developers use to put
          debugging files into.  Enable this option to be able to read and
@@ -103,39 +127,34 @@ config HEADERS_CHECK
 
 config DEBUG_SECTION_MISMATCH
        bool "Enable full Section mismatch analysis"
-       depends on UNDEFINED || (BLACKFIN)
-       default y
-       # This option is on purpose disabled for now.
-       # It will be enabled when we are down to a reasonable number
-       # of section mismatch warnings (< 10 for an allyesconfig build)
        help
          The section mismatch analysis checks if there are illegal
          references from one section to another section.
-         Linux will during link or during runtime drop some sections
-         and any use of code/data previously in these sections will
+         During linktime or runtime, some sections are dropped;
+         any use of code/data previously in these sections would
          most likely result in an oops.
-         In the code functions and variables are annotated with
-         __init, __devinit etc. (see full list in include/linux/init.h)
+         In the code, functions and variables are annotated with
+         __init, __devinit, etc. (see the full list in include/linux/init.h),
          which results in the code/data being placed in specific sections.
-         The section mismatch analysis is always done after a full
-         kernel build but enabling this option will in addition
-         do the following:
-         - Add the option -fno-inline-functions-called-once to gcc
-           When inlining a function annotated __init in a non-init
-           function we would lose the section information and thus
+         The section mismatch analysis is always performed after a full
+         kernel build, and enabling this option causes the following
+         additional steps to occur:
+         - Add the option -fno-inline-functions-called-once to gcc commands.
+           When inlining a function annotated with __init in a non-init
+           function, we would lose the section information and thus
            the analysis would not catch the illegal reference.
-           This option tells gcc to inline less but will also
-           result in a larger kernel.
-         - Run the section mismatch analysis for each module/built-in.o
-           When we run the section mismatch analysis on vmlinux.o we
+           This option tells gcc to inline less (but it does result in
+           a larger kernel).
+         - Run the section mismatch analysis for each module/built-in.o file.
+           When we run the section mismatch analysis on vmlinux.o, we
            lose valueble information about where the mismatch was
            introduced.
            Running the analysis for each module/built-in.o file
-           will tell where the mismatch happens much closer to the
-           source. The drawback is that we will report the same
-           mismatch at least twice.
-         - Enable verbose reporting from modpost to help solving
-           the section mismatches reported.
+           tells where the mismatch happens much closer to the
+           source. The drawback is that the same mismatch is
+           reported at least twice.
+         - Enable verbose reporting from modpost in order to help resolve
+           the section mismatches that are reported.
 
 config DEBUG_KERNEL
        bool "Kernel debugging"
@@ -152,33 +171,61 @@ config DEBUG_SHIRQ
          Drivers ought to be able to handle interrupts coming in at those
          points; some don't and need to be caught.
 
-config DETECT_SOFTLOCKUP
-       bool "Detect Soft Lockups"
+config LOCKUP_DETECTOR
+       bool "Detect Hard and Soft Lockups"
        depends on DEBUG_KERNEL && !S390
-       default y
        help
-         Say Y here to enable the kernel to detect "soft lockups",
+         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 for more than 60 seconds, without giving other tasks a
-         chance to run.
+         mode with interrupts disabled for more than 10 seconds (configurable
+         using the watchdog_thresh sysctl).
 
-         When a soft-lockup is detected, the kernel will print the
-         current stack trace (which you should report), but the
-         system will stay locked up. This feature has negligible
-         overhead.
+         Say N if unsure.
 
-         (Note that "hard lockups" are separate type of bugs that
-          can be detected via the NMI-watchdog, on platforms that
-          support it.)
+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 DETECT_SOFTLOCKUP
+       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 60 seconds, without giving other tasks a
-         chance to run.
+         mode for more than 20 seconds (configurable using the watchdog_thresh
+         sysctl), without giving other tasks a chance to run.
 
          The panic can be used in combination with panic_timeout,
          to cause the system to reboot automatically after a
@@ -190,15 +237,35 @@ config BOOTPARAM_SOFTLOCKUP_PANIC
 
 config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
        int
-       depends on DETECT_SOFTLOCKUP
+       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" if EXPERT
+       default n
+       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 DETECT_SOFTLOCKUP
+       default LOCKUP_DETECTOR
        help
          Say Y here to enable the kernel to detect "hung tasks",
          which are bugs that cause the task to be stuck in
@@ -210,6 +277,22 @@ config DETECT_HUNG_TASK
          enabled then all held locks will also be reported. This
          feature has negligible overhead.
 
+config DEFAULT_HUNG_TASK_TIMEOUT
+       int "Default timeout for hung task detection (in seconds)"
+       depends on DETECT_HUNG_TASK
+       default 120
+       help
+         This option controls the default timeout (in seconds) used
+         to determine when a task has become non-responsive and should
+         be considered hung.
+
+         It can be adjusted at runtime via the kernel.hung_task_timeout_secs
+         sysctl or by writing a value to
+         /proc/sys/kernel/hung_task_timeout_secs.
+
+         A timeout of 0 disables the check.  The default is two minutes.
+         Keeping the default should be fine in most cases.
+
 config BOOTPARAM_HUNG_TASK_PANIC
        bool "Panic (Reboot) On Hung Tasks"
        depends on DETECT_HUNG_TASK
@@ -309,10 +392,18 @@ config DEBUG_OBJECTS_WORK
 
 config DEBUG_OBJECTS_RCU_HEAD
        bool "Debug RCU callbacks objects"
-       depends on DEBUG_OBJECTS && PREEMPT
+       depends on DEBUG_OBJECTS
        help
          Enable this to turn on debugging of RCU list heads (call_rcu() usage).
 
+config DEBUG_OBJECTS_PERCPU_COUNTER
+       bool "Debug percpu counter objects"
+       depends on DEBUG_OBJECTS
+       help
+         If you say Y here, additional code will be inserted into the
+         percpu counter routines to track the life time of percpu counter
+         objects and validate the percpu counter operations.
+
 config DEBUG_OBJECTS_ENABLE_DEFAULT
        int "debug_objects bootup default value (0-1)"
         range 0 1
@@ -349,7 +440,7 @@ config SLUB_DEBUG_ON
 config SLUB_STATS
        default n
        bool "Enable SLUB performance statistics"
-       depends on SLUB && SLUB_DEBUG && SYSFS
+       depends on SLUB && SYSFS
        help
          SLUB statistics are useful to debug SLUBs allocation behavior in
          order find ways to optimize the allocator. This should never be
@@ -359,12 +450,13 @@ config SLUB_STATS
          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 && EXPERIMENTAL && !MEMORY_HOTPLUG && \
-               (X86 || ARM || PPC || S390 || SPARC64 || SUPERH || MICROBLAZE)
-
-       select DEBUG_FS if SYSFS
+       depends on DEBUG_KERNEL && EXPERIMENTAL && HAVE_DEBUG_KMEMLEAK
+       select DEBUG_FS
        select STACKTRACE if STACKTRACE_SUPPORT
        select KALLSYMS
        select CRC32
@@ -398,14 +490,19 @@ config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
 
 config DEBUG_KMEMLEAK_TEST
        tristate "Simple test for the kernel memory leak detector"
-       depends on DEBUG_KMEMLEAK
+       depends on DEBUG_KMEMLEAK && m
        help
-         Say Y or M here to build a test for the kernel memory leak
-         detector. This option enables a module that explicitly leaks
-         memory.
+         This option enables a module that explicitly leaks memory.
 
          If unsure, say N.
 
+config DEBUG_KMEMLEAK_DEFAULT_OFF
+       bool "Default kmemleak to off"
+       depends on DEBUG_KMEMLEAK
+       help
+         Say Y here to disable kmemleak by default. It can then be enabled
+         on the command line via kmemleak=on.
+
 config DEBUG_PREEMPT
        bool "Debug preemptible kernel"
        depends on DEBUG_KERNEL && PREEMPT && TRACE_IRQFLAGS_SUPPORT
@@ -437,6 +534,7 @@ config RT_MUTEX_TESTER
 config DEBUG_SPINLOCK
        bool "Spinlock and rw-lock debugging: basic checks"
        depends on DEBUG_KERNEL
+       select UNINLINE_SPIN_UNLOCK
        help
          Say Y here and build SMP to catch missing spinlock initialization
          and certain other kinds of spinlock errors commonly made.  This is
@@ -471,6 +569,7 @@ config PROVE_LOCKING
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
        select DEBUG_LOCK_ALLOC
+       select TRACE_IRQFLAGS
        default n
        help
         This feature enables the kernel to prove that all locking
@@ -528,6 +627,37 @@ config PROVE_RCU_REPEATEDLY
         disabling, allowing multiple RCU-lockdep warnings to be printed
         on a single reboot.
 
+        Say Y to allow multiple RCU-lockdep warnings per boot.
+
+        Say N if you are unsure.
+
+config PROVE_RCU_DELAY
+       bool "RCU debugging: preemptible RCU race provocation"
+       depends on DEBUG_KERNEL && PREEMPT_RCU
+       default n
+       help
+        There is a class of races that involve an unlikely preemption
+        of __rcu_read_unlock() just after ->rcu_read_lock_nesting has
+        been set to INT_MIN.  This feature inserts a delay at that
+        point to increase the probability of these races.
+
+        Say Y to increase probability of preemption of __rcu_read_unlock().
+
+        Say N if you are unsure.
+
+config SPARSE_RCU_POINTER
+       bool "RCU debugging: sparse-based checks for pointer usage"
+       default n
+       help
+        This feature enables the __rcu sparse annotation for
+        RCU-protected pointers.  This annotation will cause sparse
+        to flag any non-RCU used of annotated pointers.  This can be
+        helpful when debugging RCU usage.  Please note that this feature
+        is not intended to enforce code cleanliness; it is instead merely
+        a debugging aid.
+
+        Say Y to make sparse flag questionable use of RCU-protected pointers
+
         Say N if you are unsure.
 
 config LOCKDEP
@@ -568,18 +698,20 @@ config DEBUG_LOCKDEP
          of more runtime overhead.
 
 config TRACE_IRQFLAGS
-       depends on DEBUG_KERNEL
        bool
-       default y
-       depends on TRACE_IRQFLAGS_SUPPORT
-       depends on PROVE_LOCKING
+       help
+         Enables hooks to interrupt enabling and disabling for
+         either tracing or lock debugging.
 
-config DEBUG_SPINLOCK_SLEEP
-       bool "Spinlock debugging: sleep-inside-spinlock checking"
+config DEBUG_ATOMIC_SLEEP
+       bool "Sleep inside atomic section checking"
+       select PREEMPT_COUNT
        depends on DEBUG_KERNEL
        help
          If you say Y here, various routines which may sleep will become very
-         noisy if they are called with a spinlock held.
+         noisy if they are called inside atomic sections: when a spinlock is
+         held, inside an rcu read side critical section, inside preempt disabled
+         sections, inside an interrupt, etc...
 
 config DEBUG_LOCKING_API_SELFTESTS
        bool "Locking API boot-time self-tests"
@@ -596,6 +728,15 @@ config STACKTRACE
        bool
        depends on STACKTRACE_SUPPORT
 
+config DEBUG_STACK_USAGE
+       bool "Stack utilization instrumentation"
+       depends on DEBUG_KERNEL && !IA64 && !PARISC
+       help
+         Enables the display of the minimum amount of free stack which each
+         task has ever had available in the sysrq-T and sysrq-P debug output.
+
+         This option will slow down process creation somewhat.
+
 config DEBUG_KOBJECT
        bool "kobject debugging"
        depends on DEBUG_KERNEL
@@ -611,10 +752,11 @@ config DEBUG_HIGHMEM
          Disable for production systems.
 
 config DEBUG_BUGVERBOSE
-       bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED
+       bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EXPERT
        depends on BUG
        depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \
-                  FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300
+                  FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300 || \
+                  TILE || ARM64
        default y
        help
          Say Y here to make BUG() panics output the file name and line number
@@ -683,8 +825,8 @@ config DEBUG_WRITECOUNT
          If unsure, say N.
 
 config DEBUG_MEMORY_INIT
-       bool "Debug memory initialisation" if EMBEDDED
-       default !EMBEDDED
+       bool "Debug memory initialisation" if EXPERT
+       default !EXPERT
        help
          Enable this for additional checks during memory initialisation.
          The sanity checks verify aspects of the VM such as the memory model
@@ -703,6 +845,15 @@ config DEBUG_LIST
 
          If unsure, say N.
 
+config TEST_LIST_SORT
+       bool "Linked list sorting test"
+       depends on DEBUG_KERNEL
+       help
+         Enable this to turn on 'list_sort()' function test. This test is
+         executed only once during system boot, so affects only boot time.
+
+         If unsure, say N.
+
 config DEBUG_SG
        bool "Debug SG table operations"
        depends on DEBUG_KERNEL
@@ -740,7 +891,7 @@ config DEBUG_CREDENTIALS
 
 #
 # Select this config option from the architecture Kconfig, if it
-# it is preferred to always offer frame pointers as a config
+# is preferred to always offer frame pointers as a config
 # option on the architecture (regardless of KERNEL_DEBUG):
 #
 config ARCH_WANT_FRAME_POINTERS
@@ -750,7 +901,7 @@ config ARCH_WANT_FRAME_POINTERS
 config FRAME_POINTER
        bool "Compile the kernel with frame pointers"
        depends on DEBUG_KERNEL && \
-               (CRIS || M68K || M68KNOMMU || FRV || UML || \
+               (CRIS || M68K || FRV || UML || \
                 AVR32 || SUPERH || BLACKFIN || MN10300) || \
                ARCH_WANT_FRAME_POINTERS
        default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
@@ -774,7 +925,7 @@ config BOOT_PRINTK_DELAY
          system, and then set "lpj=M" before setting "boot_delay=N".
          NOTE:  Using this option may adversely affect SMP systems.
          I.e., processors other than the first one may not boot up.
-         BOOT_PRINTK_DELAY also may cause DETECT_SOFTLOCKUP to detect
+         BOOT_PRINTK_DELAY also may cause LOCKUP_DETECTOR to detect
          what it believes to be lockup conditions.
 
 config RCU_TORTURE_TEST
@@ -808,22 +959,20 @@ config RCU_TORTURE_TEST_RUNNABLE
          Say N here if you want the RCU torture tests to start only
          after being manually enabled via /proc.
 
-config RCU_CPU_STALL_DETECTOR
-       bool "Check for stalled CPUs delaying RCU grace periods"
+config RCU_CPU_STALL_TIMEOUT
+       int "RCU CPU stall timeout in seconds"
        depends on TREE_RCU || TREE_PREEMPT_RCU
-       default y
+       range 3 300
+       default 60
        help
-         This option causes RCU to printk information on which
-         CPUs are delaying the current grace period, but only when
-         the grace period extends for excessive time periods.
-
-         Say N if you want to disable such checks.
-
-         Say Y if you are unsure.
+         If a given RCU grace period extends more than the specified
+         number of seconds, a CPU stall warning is printed.  If the
+         RCU grace period persists, additional CPU stall warnings are
+         printed at more widely spaced intervals.
 
 config RCU_CPU_STALL_VERBOSE
        bool "Print additional per-task information for RCU_CPU_STALL_DETECTOR"
-       depends on RCU_CPU_STALL_DETECTOR && TREE_PREEMPT_RCU
+       depends on TREE_PREEMPT_RCU
        default y
        help
          This option causes RCU to printk detailed per-task information
@@ -833,6 +982,30 @@ config RCU_CPU_STALL_VERBOSE
 
          Say Y if you want to enable such checks.
 
+config RCU_CPU_STALL_INFO
+       bool "Print additional diagnostics on RCU CPU stall"
+       depends on (TREE_RCU || TREE_PREEMPT_RCU) && DEBUG_KERNEL
+       default n
+       help
+         For each stalled CPU that is aware of the current RCU grace
+         period, print out additional per-CPU diagnostic information
+         regarding scheduling-clock ticks, idle state, and,
+         for RCU_FAST_NO_HZ kernels, idle-entry state.
+
+         Say N if you are unsure.
+
+         Say Y if you want to enable such diagnostics.
+
+config RCU_TRACE
+       bool "Enable tracing for RCU"
+       depends on DEBUG_KERNEL
+       help
+         This option provides tracing in RCU which presents stats
+         in debugfs for debugging RCU implementation.
+
+         Say Y here if you want to enable RCU tracing
+         Say N if you are unsure.
+
 config KPROBES_SANITY_TEST
        bool "Kprobes sanity tests"
        depends on DEBUG_KERNEL
@@ -902,6 +1075,17 @@ config DEBUG_FORCE_WEAK_PER_CPU
          To ensure that generic code follows the above rules, this
          option forces all percpu variables to be defined as weak.
 
+config DEBUG_PER_CPU_MAPS
+       bool "Debug access to per_cpu maps"
+       depends on DEBUG_KERNEL
+       depends on SMP
+       help
+         Say Y to verify that the per_cpu map being accessed has
+         been set up. This adds a fair amount of code to kernel memory
+         and decreases performance.
+
+         Say N if unsure.
+
 config LKDTM
        tristate "Linux Kernel Dump Test Tool Module"
        depends on DEBUG_FS
@@ -917,18 +1101,105 @@ config 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
+       select DEBUG_FS
+       help
+         This option provides the ability to inject artifical errors to
+         specified notifier chain callbacks. It is useful to test the error
+         handling of notifier call chain failures.
+
+         Say N if unsure.
+
 config CPU_NOTIFIER_ERROR_INJECT
        tristate "CPU notifier error injection module"
-       depends on HOTPLUG_CPU && DEBUG_KERNEL
+       depends on HOTPLUG_CPU && NOTIFIER_ERROR_INJECTION
        help
          This option provides a kernel module that can be used to test
-         the error handling of the cpu notifiers
+         the error handling of the cpu notifiers by injecting artifical
+         errors to CPU notifier chain callbacks.  It is controlled through
+         debugfs interface under /sys/kernel/debug/notifier-error-inject/cpu
+
+         If the notifier call chain should be failed with some events
+         notified, write the error code to "actions/<notifier event>/error".
+
+         Example: Inject CPU offline error (-1 == -EPERM)
+
+         # cd /sys/kernel/debug/notifier-error-inject/cpu
+         # echo -1 > actions/CPU_DOWN_PREPARE/error
+         # echo 0 > /sys/devices/system/cpu/cpu1/online
+         bash: echo: write error: Operation not permitted
 
          To compile this code as a module, choose M here: the module will
          be called cpu-notifier-error-inject.
 
          If unsure, say N.
 
+config PM_NOTIFIER_ERROR_INJECT
+       tristate "PM notifier error injection module"
+       depends on PM && NOTIFIER_ERROR_INJECTION
+       default m if PM_DEBUG
+       help
+         This option provides the ability to inject artifical errors to
+         PM notifier chain callbacks.  It is controlled through debugfs
+         interface /sys/kernel/debug/notifier-error-inject/pm
+
+         If the notifier call chain should be failed with some events
+         notified, write the error code to "actions/<notifier event>/error".
+
+         Example: Inject PM suspend error (-12 = -ENOMEM)
+
+         # cd /sys/kernel/debug/notifier-error-inject/pm/
+         # echo -12 > actions/PM_SUSPEND_PREPARE/error
+         # echo mem > /sys/power/state
+         bash: echo: write error: Cannot allocate memory
+
+         To compile this code as a module, choose M here: the module will
+         be called 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 artifical 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 pSeries-reconfig-notifier-error-inject.
+
+         If unsure, say N.
+
+config PSERIES_RECONFIG_NOTIFIER_ERROR_INJECT
+       tristate "pSeries reconfig notifier error injection module"
+       depends on PPC_PSERIES && NOTIFIER_ERROR_INJECTION
+       help
+         This option provides the ability to inject artifical errors to
+         pSeries reconfig notifier chain callbacks.  It is controlled
+         through debugfs interface under
+         /sys/kernel/debug/notifier-error-inject/pSeries-reconfig/
+
+         If the notifier call chain should be failed with some events
+         notified, write the error code to "actions/<notifier event>/error".
+
+         To compile this code as a module, choose M here: the module will
+         be called memory-notifier-error-inject.
+
+         If unsure, say N.
+
 config FAULT_INJECTION
        bool "Fault-injection framework"
        depends on DEBUG_KERNEL
@@ -966,6 +1237,17 @@ config FAIL_IO_TIMEOUT
          Only works with drivers that use the generic timeout handling,
          for others it wont do anything.
 
+config FAIL_MMC_REQUEST
+       bool "Fault-injection capability for MMC IO"
+       select DEBUG_FS
+       depends on FAULT_INJECTION && MMC
+       help
+         Provide fault-injection capability for MMC IO.
+         This will make the mmc core return data errors. This is
+         useful to test the error handling in the mmc block device
+         and to test how the mmc host driver handles retries from
+         the block device.
+
 config FAULT_INJECTION_DEBUG_FS
        bool "Debugfs entries for fault-injection capabilities"
        depends on FAULT_INJECTION && SYSFS && DEBUG_FS
@@ -977,31 +1259,26 @@ config FAULT_INJECTION_STACKTRACE_FILTER
        depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
        depends on !X86_64
        select STACKTRACE
-       select FRAME_POINTER if !PPC && !S390 && !MICROBLAZE
+       select FRAME_POINTER if !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND
        help
          Provide stacktrace filter for fault-injection capabilities
 
 config LATENCYTOP
        bool "Latency measuring infrastructure"
-       select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE
+       depends on HAVE_LATENCYTOP_SUPPORT
+       depends on DEBUG_KERNEL
+       depends on STACKTRACE_SUPPORT
+       depends on PROC_FS
+       select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND
        select KALLSYMS
        select KALLSYMS_ALL
        select STACKTRACE
        select SCHEDSTATS
        select SCHED_DEBUG
-       depends on HAVE_LATENCYTOP_SUPPORT
        help
          Enable this option if you want to use the LatencyTOP tool
          to find out which userspace is blocking on what kernel operations.
 
-config SYSCTL_SYSCALL_CHECK
-       bool "Sysctl checks"
-       depends on SYSCTL
-       ---help---
-         sys_sysctl uses binary paths that have been found challenging
-         to properly maintain and use. This enables checks that help
-         you to keep things correct.
-
 source mm/Kconfig.debug
 source kernel/trace/Kconfig
 
@@ -1065,8 +1342,13 @@ config DYNAMIC_DEBUG
          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 enables all pr_debug() and dev_dbg() calls. The impact of
-         this compile option is a larger kernel text size of about 2%.
+         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:
 
@@ -1083,16 +1365,16 @@ config DYNAMIC_DEBUG
          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
+          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"
+               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:
 
@@ -1136,8 +1418,24 @@ config ATOMIC64_SELFTEST
 
          If unsure, say N.
 
+config ASYNC_RAID6_TEST
+       tristate "Self test for hardware accelerated raid6 recovery"
+       depends on ASYNC_RAID6_RECOV
+       select ASYNC_MEMCPY
+       ---help---
+         This is a one-shot self test that permutes through the
+         recovery of all the possible two disk failure scenarios for a
+         N-disk array.  Recovery is performed with the asynchronous
+         raid6 recovery routines, and will optionally use an offload
+         engine if one is available.
+
+         If unsure, say N.
+
 source "samples/Kconfig"
 
 source "lib/Kconfig.kgdb"
 
 source "lib/Kconfig.kmemcheck"
+
+config TEST_KSTRTOX
+       tristate "Test kstrto*() family of functions at runtime"