]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - lib/Kconfig.debug
Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[karo-tx-linux.git] / lib / Kconfig.debug
index 9d0a244074b9c7ba88e293492fc9696c19c55af1..98fe715522e8d1834083e608d32a78ed0600deb9 100644 (file)
@@ -286,7 +286,7 @@ config DEBUG_FS
          write to these files.
 
          For detailed documentation on the debugfs API, see
-         Documentation/DocBook/filesystems.
+         Documentation/filesystems/.
 
          If unsure, say N.
 
@@ -778,34 +778,45 @@ config DEBUG_SHIRQ
 menu "Debug Lockups and Hangs"
 
 config LOCKUP_DETECTOR
-       bool "Detect Hard and Soft Lockups"
+       bool
+
+config SOFTLOCKUP_DETECTOR
+       bool "Detect Soft Lockups"
        depends on DEBUG_KERNEL && !S390
+       select LOCKUP_DETECTOR
        help
          Say Y here to enable the kernel to act as a watchdog to detect
-         hard and soft lockups.
+         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.
 
+config HARDLOCKUP_DETECTOR_PERF
+       bool
+       select SOFTLOCKUP_DETECTOR
+
+#
+# arch/ can define HAVE_HARDLOCKUP_DETECTOR_ARCH to provide their own hard
+# lockup detector rather than the perf based detector.
+#
+config HARDLOCKUP_DETECTOR
+       bool "Detect Hard Lockups"
+       depends on DEBUG_KERNEL && !S390
+       depends on HAVE_HARDLOCKUP_DETECTOR_PERF || HAVE_HARDLOCKUP_DETECTOR_ARCH
+       select LOCKUP_DETECTOR
+       select HARDLOCKUP_DETECTOR_PERF if HAVE_HARDLOCKUP_DETECTOR_PERF
+       select HARDLOCKUP_DETECTOR_ARCH if HAVE_HARDLOCKUP_DETECTOR_ARCH
+       help
+         Say Y here to enable the kernel to act as a watchdog to detect
+         hard lockups.
+
          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
@@ -826,7 +837,7 @@ config BOOTPARAM_HARDLOCKUP_PANIC_VALUE
 
 config BOOTPARAM_SOFTLOCKUP_PANIC
        bool "Panic (Reboot) On Soft Lockups"
-       depends on LOCKUP_DETECTOR
+       depends on SOFTLOCKUP_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
@@ -843,7 +854,7 @@ config BOOTPARAM_SOFTLOCKUP_PANIC
 
 config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
        int
-       depends on LOCKUP_DETECTOR
+       depends on SOFTLOCKUP_DETECTOR
        range 0 1
        default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC
        default 1 if BOOTPARAM_SOFTLOCKUP_PANIC
@@ -851,7 +862,7 @@ config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
 config DETECT_HUNG_TASK
        bool "Detect Hung Tasks"
        depends on DEBUG_KERNEL
-       default LOCKUP_DETECTOR
+       default SOFTLOCKUP_DETECTOR
        help
          Say Y here to enable the kernel to detect "hung tasks",
          which are bugs that cause the task to be stuck in
@@ -1052,6 +1063,7 @@ config DEBUG_LOCK_ALLOC
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
+       select DEBUG_RT_MUTEXES if RT_MUTEXES
        select LOCKDEP
        help
         This feature will check whether any held lock (spinlock, rwlock,
@@ -1067,6 +1079,7 @@ config PROVE_LOCKING
        select LOCKDEP
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
+       select DEBUG_RT_MUTEXES if RT_MUTEXES
        select DEBUG_LOCK_ALLOC
        select TRACE_IRQFLAGS
        default n
@@ -1121,6 +1134,7 @@ config LOCK_STAT
        select LOCKDEP
        select DEBUG_SPINLOCK
        select DEBUG_MUTEXES
+       select DEBUG_RT_MUTEXES if RT_MUTEXES
        select DEBUG_LOCK_ALLOC
        default n
        help
@@ -1329,189 +1343,7 @@ config DEBUG_CREDENTIALS
 
          If unsure, say N.
 
-menu "RCU Debugging"
-
-config PROVE_RCU
-       def_bool PROVE_LOCKING
-
-config PROVE_RCU_REPEATEDLY
-       bool "RCU debugging: don't disable PROVE_RCU on first splat"
-       depends on PROVE_RCU
-       default n
-       help
-        By itself, PROVE_RCU will disable checking upon issuing the
-        first warning (or "splat").  This feature prevents such
-        disabling, allowing multiple RCU-lockdep warnings to be printed
-        on a single reboot.
-
-        Say Y to allow multiple RCU-lockdep warnings per boot.
-
-        Say N if you are unsure.
-
-config SPARSE_RCU_POINTER
-       bool "RCU debugging: sparse-based checks for pointer usage"
-       default n
-       help
-        This feature enables the __rcu sparse annotation for
-        RCU-protected pointers.  This annotation will cause sparse
-        to flag any non-RCU used of annotated pointers.  This can be
-        helpful when debugging RCU usage.  Please note that this feature
-        is not intended to enforce code cleanliness; it is instead merely
-        a debugging aid.
-
-        Say Y to make sparse flag questionable use of RCU-protected pointers
-
-        Say N if you are unsure.
-
-config TORTURE_TEST
-       tristate
-       default n
-
-config RCU_PERF_TEST
-       tristate "performance tests for RCU"
-       depends on DEBUG_KERNEL
-       select TORTURE_TEST
-       select SRCU
-       select TASKS_RCU
-       default n
-       help
-         This option provides a kernel module that runs performance
-         tests on the RCU infrastructure.  The kernel module may be built
-         after the fact on the running kernel to be tested, if desired.
-
-         Say Y here if you want RCU performance tests to be built into
-         the kernel.
-         Say M if you want the RCU performance tests to build as a module.
-         Say N if you are unsure.
-
-config RCU_TORTURE_TEST
-       tristate "torture tests for RCU"
-       depends on DEBUG_KERNEL
-       select TORTURE_TEST
-       select SRCU
-       select TASKS_RCU
-       default n
-       help
-         This option provides a kernel module that runs torture tests
-         on the RCU infrastructure.  The kernel module may be built
-         after the fact on the running kernel to be tested, if desired.
-
-         Say Y here if you want RCU torture tests to be built into
-         the kernel.
-         Say M if you want the RCU torture tests to build as a module.
-         Say N if you are unsure.
-
-config RCU_TORTURE_TEST_SLOW_PREINIT
-       bool "Slow down RCU grace-period pre-initialization to expose races"
-       depends on RCU_TORTURE_TEST
-       help
-         This option delays grace-period pre-initialization (the
-         propagation of CPU-hotplug changes up the rcu_node combining
-         tree) for a few jiffies between initializing each pair of
-         consecutive rcu_node structures.  This helps to expose races
-         involving grace-period pre-initialization, in other words, it
-         makes your kernel less stable.  It can also greatly increase
-         grace-period latency, especially on systems with large numbers
-         of CPUs.  This is useful when torture-testing RCU, but in
-         almost no other circumstance.
-
-         Say Y here if you want your system to crash and hang more often.
-         Say N if you want a sane system.
-
-config RCU_TORTURE_TEST_SLOW_PREINIT_DELAY
-       int "How much to slow down RCU grace-period pre-initialization"
-       range 0 5
-       default 3
-       depends on RCU_TORTURE_TEST_SLOW_PREINIT
-       help
-         This option specifies the number of jiffies to wait between
-         each rcu_node structure pre-initialization step.
-
-config RCU_TORTURE_TEST_SLOW_INIT
-       bool "Slow down RCU grace-period initialization to expose races"
-       depends on RCU_TORTURE_TEST
-       help
-         This option delays grace-period initialization for a few
-         jiffies between initializing each pair of consecutive
-         rcu_node structures.  This helps to expose races involving
-         grace-period initialization, in other words, it makes your
-         kernel less stable.  It can also greatly increase grace-period
-         latency, especially on systems with large numbers of CPUs.
-         This is useful when torture-testing RCU, but in almost no
-         other circumstance.
-
-         Say Y here if you want your system to crash and hang more often.
-         Say N if you want a sane system.
-
-config RCU_TORTURE_TEST_SLOW_INIT_DELAY
-       int "How much to slow down RCU grace-period initialization"
-       range 0 5
-       default 3
-       depends on RCU_TORTURE_TEST_SLOW_INIT
-       help
-         This option specifies the number of jiffies to wait between
-         each rcu_node structure initialization.
-
-config RCU_TORTURE_TEST_SLOW_CLEANUP
-       bool "Slow down RCU grace-period cleanup to expose races"
-       depends on RCU_TORTURE_TEST
-       help
-         This option delays grace-period cleanup for a few jiffies
-         between cleaning up each pair of consecutive rcu_node
-         structures.  This helps to expose races involving grace-period
-         cleanup, in other words, it makes your kernel less stable.
-         It can also greatly increase grace-period latency, especially
-         on systems with large numbers of CPUs.  This is useful when
-         torture-testing RCU, but in almost no other circumstance.
-
-         Say Y here if you want your system to crash and hang more often.
-         Say N if you want a sane system.
-
-config RCU_TORTURE_TEST_SLOW_CLEANUP_DELAY
-       int "How much to slow down RCU grace-period cleanup"
-       range 0 5
-       default 3
-       depends on RCU_TORTURE_TEST_SLOW_CLEANUP
-       help
-         This option specifies the number of jiffies to wait between
-         each rcu_node structure cleanup operation.
-
-config RCU_CPU_STALL_TIMEOUT
-       int "RCU CPU stall timeout in seconds"
-       depends on RCU_STALL_COMMON
-       range 3 300
-       default 21
-       help
-         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_TRACE
-       bool "Enable tracing for RCU"
-       depends on DEBUG_KERNEL
-       default y if TREE_RCU
-       select TRACE_CLOCK
-       help
-         This option provides tracing in RCU which presents stats
-         in debugfs for debugging RCU implementation.  It also enables
-         additional tracepoints for ftrace-style event tracing.
-
-         Say Y here if you want to enable RCU tracing
-         Say N if you are unsure.
-
-config RCU_EQS_DEBUG
-       bool "Provide debugging asserts for adding NO_HZ support to an arch"
-       depends on DEBUG_KERNEL
-       help
-         This option provides consistency checks in RCU's handling of
-         NO_HZ.  These checks have proven quite helpful in detecting
-         bugs in arch-specific NO_HZ code.
-
-         Say N here if you need ultimate kernel/user switch latencies
-         Say Y if you are unsure
-
-endmenu # "RCU Debugging"
+source "kernel/rcu/Kconfig.debug"
 
 config DEBUG_WQ_FORCE_RR_CPU
        bool "Force round-robin CPU selection for unbound work items"
@@ -1801,7 +1633,7 @@ config RBTREE_TEST
 
 config INTERVAL_TREE_TEST
        tristate "Interval tree test"
-       depends on m && DEBUG_KERNEL
+       depends on DEBUG_KERNEL
        select INTERVAL_TREE
        help
          A benchmark measuring the performance of the interval tree library
@@ -1992,6 +1824,17 @@ config TEST_FIRMWARE
 
          If unsure, say N.
 
+config TEST_SYSCTL
+       tristate "sysctl test driver"
+       default n
+       depends on PROC_SYSCTL
+       help
+         This builds the "test_sysctl" module. This driver enables to test the
+         proc sysctl interfaces available to drivers safely without affecting
+         production knobs which might alter system functionality.
+
+         If unsure, say N.
+
 config TEST_UDELAY
        tristate "udelay test driver"
        default n
@@ -2032,6 +1875,33 @@ config BUG_ON_DATA_CORRUPTION
 
          If unsure, say N.
 
+config TEST_KMOD
+       tristate "kmod stress tester"
+       default n
+       depends on m
+       depends on BLOCK && (64BIT || LBDAF)      # for XFS, BTRFS
+       depends on NETDEVICES && NET_CORE && INET # for TUN
+       select TEST_LKM
+       select XFS_FS
+       select TUN
+       select BTRFS_FS
+       help
+         Test the kernel's module loading mechanism: kmod. kmod implements
+         support to load modules using the Linux kernel's usermode helper.
+         This test provides a series of tests against kmod.
+
+         Although technically you can either build test_kmod as a module or
+         into the kernel we disallow building it into the kernel since
+         it stress tests request_module() and this will very likely cause
+         some issues by taking over precious threads available from other
+         module load requests, ultimately this could be fatal.
+
+         To run tests run:
+
+         tools/testing/selftests/kmod/kmod.sh --help
+
+         If unsure, say N.
+
 source "samples/Kconfig"
 
 source "lib/Kconfig.kgdb"