]> Git Repo - linux.git/commitdiff
Merge branch 'kconfig-diet' from Dave Hansen
authorLinus Torvalds <[email protected]>
Thu, 4 Jul 2013 18:25:51 +0000 (11:25 -0700)
committerLinus Torvalds <[email protected]>
Thu, 4 Jul 2013 18:25:51 +0000 (11:25 -0700)
Merge Kconfig menu diet patches from Dave Hansen:
 "I think the "Kernel Hacking" menu has gotten a bit out of hand.  It is
  over 120 lines long on my system with everything enabled and options
  are scattered around it haphazardly.

        http://sr71.net/~dave/linux/kconfig-horror.png

  Let's try to introduce some sanity.  This set takes that 120 lines
  down to 55 and makes it vastly easier to find some things.  It's a
  start.

  This set stands on its own, but there is plenty of room for follow-up
  patches.  The arch-specific debug options still end up getting stuck
  in the top-level "kernel hacking" menu.  OPTIMIZE_INLINING, for
  instance, could obviously go in to the "compiler options" menu, but
  the fact that it is defined in arch/ in a separate Kconfig file keeps
  it on its own for the moment.

  The Signed-off-by's in here look funky.  I changed employers while
  working on this set, so I have signoffs from both email addresses"

* emailed patches from Dave Hansen <[email protected]>:
  hang and lockup detection menu
  kconfig: consolidate printk options
  group locking debugging options
  consolidate compilation option configs
  consolidate runtime testing configs
  order memory debugging Kconfig options
  consolidate per-arch stack overflow debugging options

1  2 
arch/arc/Kconfig
arch/blackfin/Kconfig
arch/mips/Kconfig
arch/parisc/Kconfig
arch/powerpc/Kconfig
arch/powerpc/Kconfig.debug
arch/x86/Kconfig
arch/x86/Kconfig.debug
lib/Kconfig.debug

diff --combined arch/arc/Kconfig
index 4a0e54fc01b280f260af6549d4f2c543c95f7055,cff2aad310418e3ac7ce7b1d88b3808cc64f01cd..68fcbb2d59e2abbaac1691652865f33f78949753
@@@ -34,6 -34,7 +34,7 @@@ config AR
        select OF
        select OF_EARLY_FLATTREE
        select PERF_USE_VMALLOC
+       select HAVE_DEBUG_STACKOVERFLOW
  
  config SCHED_OMIT_FRAME_POINTER
        def_bool y
@@@ -184,7 -185,6 +185,7 @@@ config ARC_CACHE_PAGE
  
  config ARC_CACHE_VIPT_ALIASING
        bool "Support VIPT Aliasing D$"
 +      depends on ARC_HAS_DCACHE
        default n
  
  endif #ARC_CACHE
@@@ -362,6 -362,13 +363,6 @@@ config ARC_MISALIGN_ACCES
          Use ONLY-IF-ABS-NECESSARY as it will be very slow and also can hide
          potential bugs in code
  
 -config ARC_STACK_NONEXEC
 -      bool "Make stack non-executable"
 -      default n
 -      help
 -        To disable the execute permissions of stack/heap of processes
 -        which are enabled by default.
 -
  config HZ
        int "Timer Frequency"
        default 100
diff --combined arch/blackfin/Kconfig
index b573827d0416b146b0308ba2043b4587df678e36,82707a77aa73e1b34c0ac79df038d45f81f1a263..08c7ac650405f9697dfba221077a4bbd129febaf
@@@ -41,6 -41,7 +41,7 @@@ config BLACKFI
        select ARCH_USES_GETTIMEOFFSET if !GENERIC_CLOCKEVENTS
        select HAVE_MOD_ARCH_SPECIFIC
        select MODULES_USE_ELF_RELA
+       select HAVE_DEBUG_STACKOVERFLOW
  
  config GENERIC_CSUM
        def_bool y
@@@ -253,7 -254,7 +254,7 @@@ config NR_CPU
  
  config HOTPLUG_CPU
        bool "Support for hot-pluggable CPUs"
 -      depends on SMP && HOTPLUG
 +      depends on SMP
        default y
  
  config BF_REV_MIN
diff --combined arch/mips/Kconfig
index e433b90507fb10a721e59a170be53d2859f28f32,7aae1ef096ea8b010effadef602472738003f5a3..beeff436b22f8128ee7d32c925321be6592242fa
@@@ -42,6 -42,7 +42,7 @@@ config MIP
        select MODULES_USE_ELF_REL if MODULES
        select MODULES_USE_ELF_RELA if MODULES && 64BIT
        select CLONE_BACKWARDS
+       select HAVE_DEBUG_STACKOVERFLOW
  
  menu "Machine selection"
  
@@@ -962,7 -963,7 +963,7 @@@ config SYS_HAS_EARLY_PRINT
  
  config HOTPLUG_CPU
        bool "Support for hot-pluggable CPUs"
 -      depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
 +      depends on SMP && SYS_SUPPORTS_HOTPLUG_CPU
        help
          Say Y here to allow turning CPUs off and on. CPUs can be
          controlled through /sys/devices/system/cpu.
diff --combined arch/parisc/Kconfig
index 2a2aea5aae5bd7ba489c57e4cc9744752fd7c5f2,ffcd557f8cfd3a27621d72b6a74551e5576030e3..aa399a5259b6ce406302ac79a8770312ca688aad
@@@ -27,6 -27,7 +27,7 @@@ config PARIS
        select MODULES_USE_ELF_RELA
        select CLONE_BACKWARDS
        select TTY # Needed for pdc_cons.c
+       select HAVE_DEBUG_STACKOVERFLOW
  
        help
          The PA-RISC microprocessor is designed by Hewlett-Packard and used
@@@ -254,6 -255,7 +255,6 @@@ config IRQSTACK
  config HOTPLUG_CPU
        bool
        default y if SMP
 -      select HOTPLUG
  
  config ARCH_SELECT_MEMORY_MODEL
        def_bool y
diff --combined arch/powerpc/Kconfig
index 1022e7b675c25b36cd46e8ae22eae7c20e7d1940,a4f5959ed9b01fc7966dd4a984150a60225f3a69..bc3a0ebf16a7cf4d7af208fccef71488684f80be
@@@ -138,6 -138,7 +138,7 @@@ config PP
        select ARCH_USE_BUILTIN_BSWAP
        select OLD_SIGSUSPEND
        select OLD_SIGACTION if PPC32
+       select HAVE_DEBUG_STACKOVERFLOW
  
  config EARLY_PRINTK
        bool
@@@ -298,7 -299,7 +299,7 @@@ config HUGETLB_PAGE_SIZE_VARIABL
  
  config MATH_EMULATION
        bool "Math emulation"
 -      depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
 +      depends on 4xx || 8xx || PPC_MPC832x || BOOKE
        ---help---
          Some PowerPC chips designed for embedded applications do not have
          a floating-point unit and therefore do not implement the
          unit, which will allow programs that use floating-point
          instructions to run.
  
 +        This is also useful to emulate missing (optional) instructions
 +        such as fsqrt on cores that do have an FPU but do not implement
 +        them (such as Freescale BookE).
 +
  config PPC_TRANSACTIONAL_MEM
         bool "Transactional Memory support for POWERPC"
         depends on PPC_BOOK3S_64
         ---help---
           Support user-mode Transactional Memory on POWERPC.
  
 -config 8XX_MINIMAL_FPEMU
 -      bool "Minimal math emulation for 8xx"
 -      depends on 8xx && !MATH_EMULATION
 -      help
 -        Older arch/ppc kernels still emulated a few floating point
 -        instructions such as load and store, even when full math
 -        emulation is disabled.  Say "Y" here if you want to preserve
 -        this behavior.
 -
 -        It is recommended that you build a soft-float userspace instead.
 -
  config IOMMU_HELPER
        def_bool PPC64
  
@@@ -334,7 -342,7 +335,7 @@@ config SWIOTL
  
  config HOTPLUG_CPU
        bool "Support for enabling/disabling CPUs"
 -      depends on SMP && HOTPLUG && (PPC_PSERIES || \
 +      depends on SMP && (PPC_PSERIES || \
        PPC_PMAC || PPC_POWERNV || (PPC_85xx && !PPC_E500MC))
        ---help---
          Say Y here to be able to disable and re-enable individual
index d86875f3e17e2a66a39a3ca3983ccae5b5ffa987,a4914f373958dca16cfd563cabad978c28491a7a..21c9f304e96c50b7945ae4571a3fdf0363d924ce
@@@ -28,13 -28,6 +28,6 @@@ config PRINT_STACK_DEPT
          too small and stack traces cause important information to
          scroll off the screen.
  
- config DEBUG_STACKOVERFLOW
-       bool "Check for stack overflows"
-       depends on DEBUG_KERNEL
-       help
-         This option will cause messages to be printed if free stack space
-         drops below a certain limit.
  config HCALL_STATS
        bool "Hypervisor call instrumentation"
        depends on PPC_PSERIES && DEBUG_FS && TRACEPOINTS
@@@ -147,13 -140,6 +140,13 @@@ choic
          enable debugging for the wrong type of machine your kernel
          _will not boot_.
  
 +config PPC_EARLY_DEBUG_BOOTX
 +      bool "BootX or OpenFirmware"
 +      depends on BOOTX_TEXT
 +      help
 +        Select this to enable early debugging for a machine using BootX
 +        or OpenFirmware.
 +
  config PPC_EARLY_DEBUG_LPAR
        bool "LPAR HV Console"
        depends on PPC_PSERIES
diff --combined arch/x86/Kconfig
index 2775023a074491e2ab3351a567a3735e3ca5066a,22f30337a18ea2273fd9513145922cc9b42ba15f..265c672a2f405f9fd41532e35bf3263f5432cbce
@@@ -102,7 -102,6 +102,7 @@@ config X8
        select HAVE_ARCH_SECCOMP_FILTER
        select BUILDTIME_EXTABLE_SORT
        select GENERIC_CMOS_UPDATE
 +      select HAVE_ARCH_SOFT_DIRTY
        select CLOCKSOURCE_WATCHDOG
        select GENERIC_CLOCKEVENTS
        select ARCH_CLOCKSOURCE_DATA if X86_64
        select OLD_SIGACTION if X86_32
        select COMPAT_OLD_SIGACTION if IA32_EMULATION
        select RTC_LIB
+       select HAVE_DEBUG_STACKOVERFLOW
  
  config INSTRUCTION_DECODER
        def_bool y
@@@ -208,12 -208,6 +209,12 @@@ config ARCH_HIBERNATION_POSSIBL
  config ARCH_SUSPEND_POSSIBLE
        def_bool y
  
 +config ARCH_WANT_HUGE_PMD_SHARE
 +      def_bool y
 +
 +config ARCH_WANT_GENERAL_HUGETLB
 +      def_bool y
 +
  config ZONE_DMA32
        bool
        default X86_64
@@@ -343,7 -337,6 +344,7 @@@ config X86_EXTENDED_PLATFOR
  
          If you enable this option then you'll be able to select support
          for the following (non-PC) 32 bit x86 platforms:
 +              Goldfish (Android emulator)
                AMD Elan
                NUMAQ (IBM/Sequent)
                RDC R-321x SoC
@@@ -418,7 -411,6 +419,7 @@@ config X86_U
  config X86_GOLDFISH
         bool "Goldfish (Virtual Platform)"
         depends on X86_32
 +       depends on X86_EXTENDED_PLATFORM
         ---help---
         Enable support for the Goldfish virtual platform used primarily
         for Android development. Unless you are building for the Android
@@@ -1067,16 -1059,8 +1068,16 @@@ config MICROCODE_INTEL_LI
        depends on MICROCODE_INTEL
  
  config MICROCODE_INTEL_EARLY
 +      def_bool n
 +
 +config MICROCODE_AMD_EARLY
 +      def_bool n
 +
 +config MICROCODE_EARLY
        bool "Early load microcode"
 -      depends on MICROCODE_INTEL && BLK_DEV_INITRD
 +      depends on MICROCODE=y && BLK_DEV_INITRD
 +      select MICROCODE_INTEL_EARLY if MICROCODE_INTEL
 +      select MICROCODE_AMD_EARLY if MICROCODE_AMD
        default y
        help
          This option provides functionality to read additional microcode data
          microcode to CPU's as early as possible. No functional change if no
          microcode data is glued to the initrd, therefore it's safe to say Y.
  
 -config MICROCODE_EARLY
 -      def_bool y
 -      depends on MICROCODE_INTEL_EARLY
 -
  config X86_MSR
        tristate "/dev/cpu/*/msr - Model-specific register support"
        ---help---
@@@ -1738,7 -1726,7 +1739,7 @@@ config PHYSICAL_ALIG
  
  config HOTPLUG_CPU
        bool "Support for hot-pluggable CPUs"
 -      depends on SMP && HOTPLUG
 +      depends on SMP
        ---help---
          Say Y here to allow turning CPUs off and on. CPUs can be
          controlled through /sys/devices/system/cpu.
@@@ -2259,11 -2247,11 +2260,11 @@@ source "drivers/pcmcia/Kconfig
  source "drivers/pci/hotplug/Kconfig"
  
  config RAPIDIO
 -      bool "RapidIO support"
 +      tristate "RapidIO support"
        depends on PCI
        default n
        help
 -        If you say Y here, the kernel will include drivers and
 +        If enabled this option will include drivers and the core
          infrastructure code to support RapidIO interconnect devices.
  
  source "drivers/rapidio/Kconfig"
diff --combined arch/x86/Kconfig.debug
index c963881de0d0bdac76923e8fa93e8cc02e6eaab4,c1665a8989da03c4651a0870db29c6812be5108b..78d91afb8e504174f79670dc7527748109a0231d
@@@ -59,16 -59,6 +59,6 @@@ config EARLY_PRINTK_DBG
          with klogd/syslogd or the X server. You should normally N here,
          unless you want to debug such a crash. You need usb debug device.
  
- config DEBUG_STACKOVERFLOW
-       bool "Check for stack overflows"
-       depends on DEBUG_KERNEL
-       ---help---
-         Say Y here if you want to check the overflows of kernel, IRQ
-         and exception stacks. This option will cause messages of the
-         stacks in detail when free stack space drops below a certain
-         limit.
-         If in doubt, say "N".
  config X86_PTDUMP
        bool "Export kernel pagetable layout to userspace via debugfs"
        depends on DEBUG_KERNEL
@@@ -122,6 -112,7 +112,6 @@@ config DEBUG_NX_TES
  config DOUBLEFAULT
        default y
        bool "Enable doublefault exception handler" if EXPERT
 -      depends on X86_32
        ---help---
          This option allows trapping of rare doublefault exceptions that
          would otherwise cause a system to silently reboot. Disabling this
@@@ -303,14 -294,4 +293,14 @@@ config DEBUG_NMI_SELFTES
  
          If unsure, say N.
  
 +config X86_DEBUG_STATIC_CPU_HAS
 +      bool "Debug alternatives"
 +      depends on DEBUG_KERNEL
 +      ---help---
 +        This option causes additional code to be generated which
 +        fails if static_cpu_has() is used before alternatives have
 +        run.
 +
 +        If unsure, say N.
 +
  endmenu
diff --combined lib/Kconfig.debug
index 7154f799541a41c5a4b7f3a351696d24b6e7db49,65c8e4daee4a16d16e58dde8d8a0243b495c10cb..88c8d98767024bf2e9331e16855b2bbc09dc8412
@@@ -1,3 -1,4 +1,4 @@@
+ menu "printk and dmesg options"
  
  config PRINTK_TIME
        bool "Show timing information on printks"
@@@ -25,6 -26,123 +26,123 @@@ config DEFAULT_MESSAGE_LOGLEVE
          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 +170,6 @@@ config FRAME_WAR
          Setting it to 0 disables the warning.
          Requires gcc 4.4
  
- config MAGIC_SYSRQ
-       bool "Magic SysRq key"
-       depends on !UML
-       help
-         If you say Y here, you will have some control over the system even
-         if the system crashes for example during kernel debugging (e.g., you
-         will be able to flush the buffer cache to disk, reboot the system
-         immediately or dump some status information). This is accomplished
-         by pressing various keys while holding SysRq (Alt+PrintScreen). It
-         also works on a serial console (on PC hardware at least), if you
-         send a BREAK and then within 5 seconds a command keypress. The
-         keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
-         unless you really know what this hack does.
  config STRIP_ASM_SYMS
        bool "Strip assembler-generated symbols during link"
        default n
@@@ -156,222 -260,90 +260,90 @@@ config DEBUG_SECTION_MISMATC
          - Enable verbose reporting from modpost in order to help resolve
            the section mismatches that are reported.
  
- config DEBUG_KERNEL
-       bool "Kernel debugging"
+ #
+ # Select this config option from the architecture Kconfig, if it
+ # is preferred to always offer frame pointers as a config
+ # option on the architecture (regardless of KERNEL_DEBUG):
+ #
+ config ARCH_WANT_FRAME_POINTERS
+       bool
        help
-         Say Y here if you are developing drivers or trying to debug and
-         identify kernel problems.
  
- config DEBUG_SHIRQ
-       bool "Debug shared IRQ handlers"
-       depends on DEBUG_KERNEL && GENERIC_HARDIRQS
+ config FRAME_POINTER
+       bool "Compile the kernel with frame pointers"
+       depends on DEBUG_KERNEL && \
+               (CRIS || M68K || FRV || UML || \
+                AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || \
+               ARCH_WANT_FRAME_POINTERS
+       default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
        help
-         Enable this to generate a spurious interrupt as soon as a shared
-         interrupt handler is registered, and just before one is deregistered.
-         Drivers ought to be able to handle interrupts coming in at those
-         points; some don't and need to be caught.
+         If you say Y here the resulting kernel image will be slightly
+         larger and slower, but it gives very useful debugging information
+         in case of kernel bugs. (precise oopses/stacktraces/warnings)
  
- config LOCKUP_DETECTOR
-       bool "Detect Hard and Soft Lockups"
-       depends on DEBUG_KERNEL && !S390
+ config DEBUG_FORCE_WEAK_PER_CPU
+       bool "Force weak per-cpu definitions"
+       depends on DEBUG_KERNEL
        help
-         Say Y here to enable the kernel to act as a watchdog to detect
-         hard and soft lockups.
-         Softlockups are bugs that cause the kernel to loop in kernel
-         mode for more than 20 seconds, without giving other tasks a
-         chance to run.  The current stack trace is displayed upon
-         detection and the system will stay locked up.
+         s390 and alpha require percpu variables in modules to be
+         defined weak to work around addressing range issue which
+         puts the following two restrictions on percpu variable
+         definitions.
  
-         Hardlockups are bugs that cause the CPU to loop in kernel mode
-         for more than 10 seconds, without letting other interrupts have a
-         chance to run.  The current stack trace is displayed upon detection
-         and the system will stay locked up.
+         1. percpu symbols must be unique whether static or not
+         2. percpu variables can't be defined inside a function
  
-         The overhead should be minimal.  A periodic hrtimer runs to
-         generate interrupts and kick the watchdog task every 4 seconds.
-         An NMI is generated every 10 seconds or so to check for hardlockups.
+         To ensure that generic code follows the above rules, this
+         option forces all percpu variables to be defined as weak.
  
-         The frequency of hrtimer and NMI events and the soft and hard lockup
-         thresholds can be controlled through the sysctl watchdog_thresh.
+ endmenu # "Compiler options"
  
- config HARDLOCKUP_DETECTOR
-       def_bool y
-       depends on LOCKUP_DETECTOR && !HAVE_NMI_WATCHDOG
-       depends on PERF_EVENTS && HAVE_PERF_EVENTS_NMI
+ config MAGIC_SYSRQ
+       bool "Magic SysRq key"
+       depends on !UML
+       help
+         If you say Y here, you will have some control over the system even
+         if the system crashes for example during kernel debugging (e.g., you
+         will be able to flush the buffer cache to disk, reboot the system
+         immediately or dump some status information). This is accomplished
+         by pressing various keys while holding SysRq (Alt+PrintScreen). It
+         also works on a serial console (on PC hardware at least), if you
+         send a BREAK and then within 5 seconds a command keypress. The
+         keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
+         unless you really know what this hack does.
  
- config BOOTPARAM_HARDLOCKUP_PANIC
-       bool "Panic (Reboot) On Hard Lockups"
-       depends on HARDLOCKUP_DETECTOR
+ config DEBUG_KERNEL
+       bool "Kernel debugging"
        help
-         Say Y here to enable the kernel to panic on "hard lockups",
-         which are bugs that cause the kernel to loop in kernel
-         mode with interrupts disabled for more than 10 seconds (configurable
-         using the watchdog_thresh sysctl).
+         Say Y here if you are developing drivers or trying to debug and
+         identify kernel problems.
  
-         Say N if unsure.
+ menu "Memory Debugging"
  
- config BOOTPARAM_HARDLOCKUP_PANIC_VALUE
-       int
-       depends on HARDLOCKUP_DETECTOR
-       range 0 1
-       default 0 if !BOOTPARAM_HARDLOCKUP_PANIC
-       default 1 if BOOTPARAM_HARDLOCKUP_PANIC
+ source mm/Kconfig.debug
  
- config BOOTPARAM_SOFTLOCKUP_PANIC
-       bool "Panic (Reboot) On Soft Lockups"
-       depends on LOCKUP_DETECTOR
+ config DEBUG_OBJECTS
+       bool "Debug object operations"
+       depends on DEBUG_KERNEL
        help
-         Say Y here to enable the kernel to panic on "soft lockups",
-         which are bugs that cause the kernel to loop in kernel
-         mode for more than 20 seconds (configurable using the watchdog_thresh
-         sysctl), without giving other tasks a chance to run.
+         If you say Y here, additional code will be inserted into the
+         kernel to track the life time of various objects and validate
+         the operations on those objects.
  
-         The panic can be used in combination with panic_timeout,
-         to cause the system to reboot automatically after a
-         lockup has been detected. This feature is useful for
-         high-availability systems that have uptime guarantees and
-         where a lockup must be resolved ASAP.
+ config DEBUG_OBJECTS_SELFTEST
+       bool "Debug objects selftest"
+       depends on DEBUG_OBJECTS
+       help
+         This enables the selftest of the object debug code.
  
-         Say N if unsure.
- config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
-       int
-       depends on LOCKUP_DETECTOR
-       range 0 1
-       default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC
-       default 1 if BOOTPARAM_SOFTLOCKUP_PANIC
- config PANIC_ON_OOPS
-       bool "Panic on Oops"
-       help
-         Say Y here to enable the kernel to panic when it oopses. This
-         has the same effect as setting oops=panic on the kernel command
-         line.
-         This feature is useful to ensure that the kernel does not do
-         anything erroneous after an oops which could result in data
-         corruption or other issues.
-         Say N if unsure.
- config PANIC_ON_OOPS_VALUE
-       int
-       range 0 1
-       default 0 if !PANIC_ON_OOPS
-       default 1 if PANIC_ON_OOPS
- config DETECT_HUNG_TASK
-       bool "Detect Hung Tasks"
-       depends on DEBUG_KERNEL
-       default LOCKUP_DETECTOR
-       help
-         Say Y here to enable the kernel to detect "hung tasks",
-         which are bugs that cause the task to be stuck in
-         uninterruptible "D" state indefinitiley.
-         When a hung task is detected, the kernel will print the
-         current stack trace (which you should report), but the
-         task will stay in uninterruptible state. If lockdep is
-         enabled then all held locks will also be reported. This
-         feature has negligible overhead.
- config DEFAULT_HUNG_TASK_TIMEOUT
-       int "Default timeout for hung task detection (in seconds)"
-       depends on DETECT_HUNG_TASK
-       default 120
-       help
-         This option controls the default timeout (in seconds) used
-         to determine when a task has become non-responsive and should
-         be considered hung.
-         It can be adjusted at runtime via the kernel.hung_task_timeout_secs
-         sysctl or by writing a value to
-         /proc/sys/kernel/hung_task_timeout_secs.
-         A timeout of 0 disables the check.  The default is two minutes.
-         Keeping the default should be fine in most cases.
- config BOOTPARAM_HUNG_TASK_PANIC
-       bool "Panic (Reboot) On Hung Tasks"
-       depends on DETECT_HUNG_TASK
-       help
-         Say Y here to enable the kernel to panic on "hung tasks",
-         which are bugs that cause the kernel to leave a task stuck
-         in uninterruptible "D" state.
-         The panic can be used in combination with panic_timeout,
-         to cause the system to reboot automatically after a
-         hung task has been detected. This feature is useful for
-         high-availability systems that have uptime guarantees and
-         where a hung tasks must be resolved ASAP.
-         Say N if unsure.
- config BOOTPARAM_HUNG_TASK_PANIC_VALUE
-       int
-       depends on DETECT_HUNG_TASK
-       range 0 1
-       default 0 if !BOOTPARAM_HUNG_TASK_PANIC
-       default 1 if BOOTPARAM_HUNG_TASK_PANIC
- config SCHED_DEBUG
-       bool "Collect scheduler debugging info"
-       depends on DEBUG_KERNEL && PROC_FS
-       default y
-       help
-         If you say Y here, the /proc/sched_debug file will be provided
-         that can help debug the scheduler. The runtime overhead of this
-         option is minimal.
- config SCHEDSTATS
-       bool "Collect scheduler statistics"
-       depends on DEBUG_KERNEL && PROC_FS
-       help
-         If you say Y here, additional code will be inserted into the
-         scheduler and related routines to collect statistics about
-         scheduler behavior and provide them in /proc/schedstat.  These
-         stats may be useful for both tuning and debugging the scheduler
-         If you aren't debugging the scheduler or trying to tune a specific
-         application, you can say N to avoid the very slight overhead
-         this adds.
- config TIMER_STATS
-       bool "Collect kernel timers statistics"
-       depends on DEBUG_KERNEL && PROC_FS
-       help
-         If you say Y here, additional code will be inserted into the
-         timer routines to collect statistics about kernel timers being
-         reprogrammed. The statistics can be read from /proc/timer_stats.
-         The statistics collection is started by writing 1 to /proc/timer_stats,
-         writing 0 stops it. This feature is useful to collect information
-         about timer usage patterns in kernel and userspace. This feature
-         is lightweight if enabled in the kernel config but not activated
-         (it defaults to deactivated on bootup and will only be activated
-         if some application like powertop activates it explicitly).
- config DEBUG_OBJECTS
-       bool "Debug object operations"
-       depends on DEBUG_KERNEL
-       help
-         If you say Y here, additional code will be inserted into the
-         kernel to track the life time of various objects and validate
-         the operations on those objects.
- config DEBUG_OBJECTS_SELFTEST
-       bool "Debug objects selftest"
-       depends on DEBUG_OBJECTS
-       help
-         This enables the selftest of the object debug code.
- config DEBUG_OBJECTS_FREE
-       bool "Debug objects in freed memory"
-       depends on DEBUG_OBJECTS
-       help
-         This enables checks whether a k/v free operation frees an area
-         which contains an object which has not been deactivated
-         properly. This can make kmalloc/kfree-intensive workloads
-         much slower.
+ config DEBUG_OBJECTS_FREE
+       bool "Debug objects in freed memory"
+       depends on DEBUG_OBJECTS
+       help
+         This enables checks whether a k/v free operation frees an area
+         which contains an object which has not been deactivated
+         properly. This can make kmalloc/kfree-intensive workloads
+         much slower.
  
  config DEBUG_OBJECTS_TIMERS
        bool "Debug timer objects"
@@@ -469,38 -441,351 +441,351 @@@ config DEBUG_KMEMLEA
          allocations. See Documentation/kmemleak.txt for more
          details.
  
-         Enabling DEBUG_SLAB or SLUB_DEBUG may increase the chances
-         of finding leaks due to the slab objects poisoning.
+         Enabling DEBUG_SLAB or SLUB_DEBUG may increase the chances
+         of finding leaks due to the slab objects poisoning.
+         In order to access the kmemleak file, debugfs needs to be
+         mounted (usually at /sys/kernel/debug).
+ config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
+       int "Maximum kmemleak early log entries"
+       depends on DEBUG_KMEMLEAK
+       range 200 40000
+       default 400
+       help
+         Kmemleak must track all the memory allocations to avoid
+         reporting false positives. Since memory may be allocated or
+         freed before kmemleak is initialised, an early log buffer is
+         used to store these actions. If kmemleak reports "early log
+         buffer exceeded", please increase this value.
+ config DEBUG_KMEMLEAK_TEST
+       tristate "Simple test for the kernel memory leak detector"
+       depends on DEBUG_KMEMLEAK && m
+       help
+         This option enables a module that explicitly leaks memory.
+         If unsure, say N.
+ config DEBUG_KMEMLEAK_DEFAULT_OFF
+       bool "Default kmemleak to off"
+       depends on DEBUG_KMEMLEAK
+       help
+         Say Y here to disable kmemleak by default. It can then be enabled
+         on the command line via kmemleak=on.
+ config DEBUG_STACK_USAGE
+       bool "Stack utilization instrumentation"
+       depends on DEBUG_KERNEL && !IA64 && !PARISC && !METAG
+       help
+         Enables the display of the minimum amount of free stack which each
+         task has ever had available in the sysrq-T and sysrq-P debug output.
+         This option will slow down process creation somewhat.
+ config DEBUG_VM
+       bool "Debug VM"
+       depends on DEBUG_KERNEL
+       help
+         Enable this to turn on extended checks in the virtual-memory system
+           that may impact performance.
+         If unsure, say N.
+ config DEBUG_VM_RB
+       bool "Debug VM red-black trees"
+       depends on DEBUG_VM
+       help
+         Enable this to turn on more extended checks in the virtual-memory
+         system that may impact performance.
+         If unsure, say N.
+ config DEBUG_VIRTUAL
+       bool "Debug VM translations"
+       depends on DEBUG_KERNEL && X86
+       help
+         Enable some costly sanity checks in virtual to page code. This can
+         catch mistakes with virt_to_page() and friends.
+         If unsure, say N.
+ config DEBUG_NOMMU_REGIONS
+       bool "Debug the global anon/private NOMMU mapping region tree"
+       depends on DEBUG_KERNEL && !MMU
+       help
+         This option causes the global tree of anonymous and private mapping
+         regions to be regularly checked for invalid topology.
+ config DEBUG_MEMORY_INIT
+       bool "Debug memory initialisation" if EXPERT
+       default !EXPERT
+       help
+         Enable this for additional checks during memory initialisation.
+         The sanity checks verify aspects of the VM such as the memory model
+         and other information provided by the architecture. Verbose
+         information will be printed at KERN_DEBUG loglevel depending
+         on the mminit_loglevel= command-line option.
+         If unsure, say Y
+ config MEMORY_NOTIFIER_ERROR_INJECT
+       tristate "Memory hotplug notifier error injection module"
+       depends on MEMORY_HOTPLUG_SPARSE && NOTIFIER_ERROR_INJECTION
+       help
+         This option provides the ability to inject artificial errors to
+         memory hotplug notifier chain callbacks.  It is controlled through
+         debugfs interface under /sys/kernel/debug/notifier-error-inject/memory
+         If the notifier call chain should be failed with some events
+         notified, write the error code to "actions/<notifier event>/error".
+         Example: Inject memory hotplug offline error (-12 == -ENOMEM)
+         # cd /sys/kernel/debug/notifier-error-inject/memory
+         # echo -12 > actions/MEM_GOING_OFFLINE/error
+         # echo offline > /sys/devices/system/memory/memoryXXX/state
+         bash: echo: write error: Cannot allocate memory
+         To compile this code as a module, choose M here: the module will
+         be called memory-notifier-error-inject.
+         If unsure, say N.
+ config DEBUG_PER_CPU_MAPS
+       bool "Debug access to per_cpu maps"
+       depends on DEBUG_KERNEL
+       depends on SMP
+       help
+         Say Y to verify that the per_cpu map being accessed has
+         been set up. This adds a fair amount of code to kernel memory
+         and decreases performance.
+         Say N if unsure.
+ config DEBUG_HIGHMEM
+       bool "Highmem debugging"
+       depends on DEBUG_KERNEL && HIGHMEM
+       help
+         This options enables addition error checking for high memory systems.
+         Disable for production systems.
+ config HAVE_DEBUG_STACKOVERFLOW
+       bool
+ config DEBUG_STACKOVERFLOW
+       bool "Check for stack overflows"
+       depends on DEBUG_KERNEL && HAVE_DEBUG_STACKOVERFLOW
+       ---help---
+         Say Y here if you want to check for overflows of kernel, IRQ
+         and exception stacks (if your archicture uses them). This
+         option will show detailed messages if free stack space drops
+         below a certain limit.
+         These kinds of bugs usually occur when call-chains in the
+         kernel get too deep, especially when interrupts are
+         involved.
+         Use this in cases where you see apparently random memory
+         corruption, especially if it appears in 'struct thread_info'
+         If in doubt, say "N".
+ source "lib/Kconfig.kmemcheck"
+ endmenu # "Memory Debugging"
+ config DEBUG_SHIRQ
+       bool "Debug shared IRQ handlers"
+       depends on DEBUG_KERNEL && GENERIC_HARDIRQS
+       help
+         Enable this to generate a spurious interrupt as soon as a shared
+         interrupt handler is registered, and just before one is deregistered.
+         Drivers ought to be able to handle interrupts coming in at those
+         points; some don't and need to be caught.
+ menu "Debug Lockups and Hangs"
+ config LOCKUP_DETECTOR
+       bool "Detect Hard and Soft Lockups"
+       depends on DEBUG_KERNEL && !S390
+       help
+         Say Y here to enable the kernel to act as a watchdog to detect
+         hard and soft lockups.
+         Softlockups are bugs that cause the kernel to loop in kernel
+         mode for more than 20 seconds, without giving other tasks a
+         chance to run.  The current stack trace is displayed upon
+         detection and the system will stay locked up.
+         Hardlockups are bugs that cause the CPU to loop in kernel mode
+         for more than 10 seconds, without letting other interrupts have a
+         chance to run.  The current stack trace is displayed upon detection
+         and the system will stay locked up.
+         The overhead should be minimal.  A periodic hrtimer runs to
+         generate interrupts and kick the watchdog task every 4 seconds.
+         An NMI is generated every 10 seconds or so to check for hardlockups.
+         The frequency of hrtimer and NMI events and the soft and hard lockup
+         thresholds can be controlled through the sysctl watchdog_thresh.
+ config HARDLOCKUP_DETECTOR
+       def_bool y
+       depends on LOCKUP_DETECTOR && !HAVE_NMI_WATCHDOG
+       depends on PERF_EVENTS && HAVE_PERF_EVENTS_NMI
+ config BOOTPARAM_HARDLOCKUP_PANIC
+       bool "Panic (Reboot) On Hard Lockups"
+       depends on HARDLOCKUP_DETECTOR
+       help
+         Say Y here to enable the kernel to panic on "hard lockups",
+         which are bugs that cause the kernel to loop in kernel
+         mode with interrupts disabled for more than 10 seconds (configurable
+         using the watchdog_thresh sysctl).
+         Say N if unsure.
+ config BOOTPARAM_HARDLOCKUP_PANIC_VALUE
+       int
+       depends on HARDLOCKUP_DETECTOR
+       range 0 1
+       default 0 if !BOOTPARAM_HARDLOCKUP_PANIC
+       default 1 if BOOTPARAM_HARDLOCKUP_PANIC
+ config BOOTPARAM_SOFTLOCKUP_PANIC
+       bool "Panic (Reboot) On Soft Lockups"
+       depends on LOCKUP_DETECTOR
+       help
+         Say Y here to enable the kernel to panic on "soft lockups",
+         which are bugs that cause the kernel to loop in kernel
+         mode for more than 20 seconds (configurable using the watchdog_thresh
+         sysctl), without giving other tasks a chance to run.
+         The panic can be used in combination with panic_timeout,
+         to cause the system to reboot automatically after a
+         lockup has been detected. This feature is useful for
+         high-availability systems that have uptime guarantees and
+         where a lockup must be resolved ASAP.
+         Say N if unsure.
+ config BOOTPARAM_SOFTLOCKUP_PANIC_VALUE
+       int
+       depends on LOCKUP_DETECTOR
+       range 0 1
+       default 0 if !BOOTPARAM_SOFTLOCKUP_PANIC
+       default 1 if BOOTPARAM_SOFTLOCKUP_PANIC
+ config DETECT_HUNG_TASK
+       bool "Detect Hung Tasks"
+       depends on DEBUG_KERNEL
+       default LOCKUP_DETECTOR
+       help
+         Say Y here to enable the kernel to detect "hung tasks",
+         which are bugs that cause the task to be stuck in
+         uninterruptible "D" state indefinitiley.
+         When a hung task is detected, the kernel will print the
+         current stack trace (which you should report), but the
+         task will stay in uninterruptible state. If lockdep is
+         enabled then all held locks will also be reported. This
+         feature has negligible overhead.
+ config DEFAULT_HUNG_TASK_TIMEOUT
+       int "Default timeout for hung task detection (in seconds)"
+       depends on DETECT_HUNG_TASK
+       default 120
+       help
+         This option controls the default timeout (in seconds) used
+         to determine when a task has become non-responsive and should
+         be considered hung.
+         It can be adjusted at runtime via the kernel.hung_task_timeout_secs
+         sysctl or by writing a value to
+         /proc/sys/kernel/hung_task_timeout_secs.
+         A timeout of 0 disables the check.  The default is two minutes.
+         Keeping the default should be fine in most cases.
+ config BOOTPARAM_HUNG_TASK_PANIC
+       bool "Panic (Reboot) On Hung Tasks"
+       depends on DETECT_HUNG_TASK
+       help
+         Say Y here to enable the kernel to panic on "hung tasks",
+         which are bugs that cause the kernel to leave a task stuck
+         in uninterruptible "D" state.
+         The panic can be used in combination with panic_timeout,
+         to cause the system to reboot automatically after a
+         hung task has been detected. This feature is useful for
+         high-availability systems that have uptime guarantees and
+         where a hung tasks must be resolved ASAP.
+         Say N if unsure.
  
-         In order to access the kmemleak file, debugfs needs to be
-         mounted (usually at /sys/kernel/debug).
+ config BOOTPARAM_HUNG_TASK_PANIC_VALUE
+       int
+       depends on DETECT_HUNG_TASK
+       range 0 1
+       default 0 if !BOOTPARAM_HUNG_TASK_PANIC
+       default 1 if BOOTPARAM_HUNG_TASK_PANIC
  
- config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
-       int "Maximum kmemleak early log entries"
-       depends on DEBUG_KMEMLEAK
-       range 200 40000
-       default 400
+ endmenu # "Debug lockups and hangs"
+ config PANIC_ON_OOPS
+       bool "Panic on Oops"
        help
-         Kmemleak must track all the memory allocations to avoid
-         reporting false positives. Since memory may be allocated or
-         freed before kmemleak is initialised, an early log buffer is
-         used to store these actions. If kmemleak reports "early log
-         buffer exceeded", please increase this value.
+         Say Y here to enable the kernel to panic when it oopses. This
+         has the same effect as setting oops=panic on the kernel command
+         line.
  
- config DEBUG_KMEMLEAK_TEST
-       tristate "Simple test for the kernel memory leak detector"
-       depends on DEBUG_KMEMLEAK && m
+         This feature is useful to ensure that the kernel does not do
+         anything erroneous after an oops which could result in data
+         corruption or other issues.
+         Say N if unsure.
+ config PANIC_ON_OOPS_VALUE
+       int
+       range 0 1
+       default 0 if !PANIC_ON_OOPS
+       default 1 if PANIC_ON_OOPS
+ config SCHED_DEBUG
+       bool "Collect scheduler debugging info"
+       depends on DEBUG_KERNEL && PROC_FS
+       default y
        help
-         This option enables a module that explicitly leaks memory.
+         If you say Y here, the /proc/sched_debug file will be provided
+         that can help debug the scheduler. The runtime overhead of this
+         option is minimal.
  
-         If unsure, say N.
+ config SCHEDSTATS
+       bool "Collect scheduler statistics"
+       depends on DEBUG_KERNEL && PROC_FS
+       help
+         If you say Y here, additional code will be inserted into the
+         scheduler and related routines to collect statistics about
+         scheduler behavior and provide them in /proc/schedstat.  These
+         stats may be useful for both tuning and debugging the scheduler
+         If you aren't debugging the scheduler or trying to tune a specific
+         application, you can say N to avoid the very slight overhead
+         this adds.
  
- config DEBUG_KMEMLEAK_DEFAULT_OFF
-       bool "Default kmemleak to off"
-       depends on DEBUG_KMEMLEAK
+ config TIMER_STATS
+       bool "Collect kernel timers statistics"
+       depends on DEBUG_KERNEL && PROC_FS
        help
-         Say Y here to disable kmemleak by default. It can then be enabled
-         on the command line via kmemleak=on.
+         If you say Y here, additional code will be inserted into the
+         timer routines to collect statistics about kernel timers being
+         reprogrammed. The statistics can be read from /proc/timer_stats.
+         The statistics collection is started by writing 1 to /proc/timer_stats,
+         writing 0 stops it. This feature is useful to collect information
+         about timer usage patterns in kernel and userspace. This feature
+         is lightweight if enabled in the kernel config but not activated
+         (it defaults to deactivated on bootup and will only be activated
+         if some application like powertop activates it explicitly).
  
  config DEBUG_PREEMPT
        bool "Debug preemptible kernel"
          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,19 -834,6 +834,19 @@@ config DEBUG_MUTEXE
         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
@@@ -654,12 -928,6 +941,6 @@@ config DEBUG_LOCKDE
          additional runtime checks to debug itself, at the price
          of more runtime overhead.
  
- config TRACE_IRQFLAGS
-       bool
-       help
-         Enables hooks to interrupt enabling and disabling for
-         either tracing or lock debugging.
  config DEBUG_ATOMIC_SLEEP
        bool "Sleep inside atomic section checking"
        select PREEMPT_COUNT
@@@ -681,18 -949,17 +962,17 @@@ config DEBUG_LOCKING_API_SELFTEST
          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"
          If you say Y here, some extra kobject debugging messages will be sent
          to the syslog. 
  
- config DEBUG_HIGHMEM
-       bool "Highmem debugging"
-       depends on DEBUG_KERNEL && HIGHMEM
-       help
-         This options enables addition error checking for high memory systems.
-         Disable for production systems.
  config HAVE_DEBUG_BUGVERBOSE
        bool
  
@@@ -720,66 -980,6 +993,6 @@@ config DEBUG_BUGVERBOS
          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
  
          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
  
          If unsure, say N.
  
- config TEST_LIST_SORT
-       bool "Linked list sorting test"
-       depends on DEBUG_KERNEL
-       help
-         Enable this to turn on 'list_sort()' function test. This test is
-         executed only once during system boot, so affects only boot time.
-         If unsure, say N.
  config DEBUG_SG
        bool "Debug SG table operations"
        depends on DEBUG_KERNEL
@@@ -855,45 -1034,6 +1047,6 @@@ config DEBUG_CREDENTIAL
  
          If unsure, say N.
  
- #
- # Select this config option from the architecture Kconfig, if it
- # is preferred to always offer frame pointers as a config
- # option on the architecture (regardless of KERNEL_DEBUG):
- #
- config ARCH_WANT_FRAME_POINTERS
-       bool
-       help
- config FRAME_POINTER
-       bool "Compile the kernel with frame pointers"
-       depends on DEBUG_KERNEL && \
-               (CRIS || M68K || FRV || UML || \
-                AVR32 || SUPERH || BLACKFIN || MN10300 || METAG) || \
-               ARCH_WANT_FRAME_POINTERS
-       default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
-       help
-         If you say Y here the resulting kernel image will be slightly
-         larger and slower, but it gives very useful debugging information
-         in case of kernel bugs. (precise oopses/stacktraces/warnings)
- config BOOT_PRINTK_DELAY
-       bool "Delay each boot printk message by N milliseconds"
-       depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
-       help
-         This build option allows you to read kernel boot messages
-         by inserting a short delay after each one.  The delay is
-         specified in milliseconds on the kernel command line,
-         using "boot_delay=N".
-         It is likely that you would also need to use "lpj=M" to preset
-         the "loops per jiffie" value.
-         See a previous boot log for the "lpj" value to use for your
-         system, and then set "lpj=M" before setting "boot_delay=N".
-         NOTE:  Using this option may adversely affect SMP systems.
-         I.e., processors other than the first one may not boot up.
-         BOOT_PRINTK_DELAY also may cause LOCKUP_DETECTOR to detect
-         what it believes to be lockup conditions.
  menu "RCU Debugging"
  
  config PROVE_RCU
@@@ -1019,46 -1159,19 +1172,19 @@@ config RCU_CPU_STALL_INF
  
          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
  
          Say N if you are unsure.
  
- config DEBUG_FORCE_WEAK_PER_CPU
-       bool "Force weak per-cpu definitions"
-       depends on DEBUG_KERNEL
-       help
-         s390 and alpha require percpu variables in modules to be
-         defined weak to work around addressing range issue which
-         puts the following two restrictions on percpu variable
-         definitions.
-         1. percpu symbols must be unique whether static or not
-         2. percpu variables can't be defined inside a function
-         To ensure that generic code follows the above rules, this
-         option forces all percpu variables to be defined as weak.
- config DEBUG_PER_CPU_MAPS
-       bool "Debug access to per_cpu maps"
-       depends on DEBUG_KERNEL
-       depends on SMP
-       help
-         Say Y to verify that the per_cpu map being accessed has
-         been set up. This adds a fair amount of code to kernel memory
-         and decreases performance.
-         Say N if unsure.
- config LKDTM
-       tristate "Linux Kernel Dump Test Tool Module"
-       depends on DEBUG_FS
-       depends on BLOCK
-       default n
-       help
-       This module enables testing of the different dumping mechanisms by
-       inducing system failures at predefined crash points.
-       If you don't need it: say N
-       Choose M here to compile this code as a module. The module will be
-       called lkdtm.
-       Documentation on how to use the module can be found in
-       Documentation/fault-injection/provoke-crashes.txt
  config NOTIFIER_ERROR_INJECTION
        tristate "Notifier error injection"
        depends on DEBUG_KERNEL
@@@ -1186,29 -1258,6 +1271,6 @@@ config PM_NOTIFIER_ERROR_INJEC
  
          If unsure, say N.
  
- config MEMORY_NOTIFIER_ERROR_INJECT
-       tristate "Memory hotplug notifier error injection module"
-       depends on MEMORY_HOTPLUG_SPARSE && NOTIFIER_ERROR_INJECTION
-       help
-         This option provides the ability to inject artificial errors to
-         memory hotplug notifier chain callbacks.  It is controlled through
-         debugfs interface under /sys/kernel/debug/notifier-error-inject/memory
-         If the notifier call chain should be failed with some events
-         notified, write the error code to "actions/<notifier event>/error".
-         Example: Inject memory hotplug offline error (-12 == -ENOMEM)
-         # cd /sys/kernel/debug/notifier-error-inject/memory
-         # echo -12 > actions/MEM_GOING_OFFLINE/error
-         # echo offline > /sys/devices/system/memory/memoryXXX/state
-         bash: echo: write error: Cannot allocate memory
-         To compile this code as a module, choose M here: the module will
-         be called memory-notifier-error-inject.
-         If unsure, say N.
  config OF_RECONFIG_NOTIFIER_ERROR_INJECT
        tristate "OF reconfig notifier error injection module"
        depends on OF_DYNAMIC && NOTIFIER_ERROR_INJECTION
@@@ -1323,9 -1372,61 +1385,61 @@@ config DEBUG_STRICT_USER_COPY_CHECK
  
          If unsure, say N.
  
- source mm/Kconfig.debug
  source kernel/trace/Kconfig
  
+ menu "Runtime Testing"
+ config LKDTM
+       tristate "Linux Kernel Dump Test Tool Module"
+       depends on DEBUG_FS
+       depends on BLOCK
+       default n
+       help
+       This module enables testing of the different dumping mechanisms by
+       inducing system failures at predefined crash points.
+       If you don't need it: say N
+       Choose M here to compile this code as a module. The module will be
+       called lkdtm.
+       Documentation on how to use the module can be found in
+       Documentation/fault-injection/provoke-crashes.txt
+ config TEST_LIST_SORT
+       bool "Linked list sorting test"
+       depends on DEBUG_KERNEL
+       help
+         Enable this to turn on 'list_sort()' function test. This test is
+         executed only once during system boot, so affects only boot time.
+         If unsure, say N.
+ config KPROBES_SANITY_TEST
+       bool "Kprobes sanity tests"
+       depends on DEBUG_KERNEL
+       depends on KPROBES
+       default n
+       help
+         This option provides for testing basic kprobes functionality on
+         boot. A sample kprobe, jprobe and kretprobe are inserted and
+         verified for functionality.
+         Say N if you are unsure.
+ config BACKTRACE_SELF_TEST
+       tristate "Self test for the backtrace code"
+       depends on DEBUG_KERNEL
+       default n
+       help
+         This option provides a kernel module that can be used to test
+         the kernel stack backtrace code. This option is not useful
+         for distributions or general kernels, but only for kernel
+         developers working on architecture code.
+         Note that if you want to also test saved backtraces, you will
+         have to enable STACKTRACE as well.
+         Say N if you are unsure.
  config RBTREE_TEST
        tristate "Red-Black tree test"
        depends on m && DEBUG_KERNEL
@@@ -1339,6 -1440,34 +1453,34 @@@ config INTERVAL_TREE_TES
        help
          A benchmark measuring the performance of the interval tree library
  
+ config ATOMIC64_SELFTEST
+       bool "Perform an atomic64_t self-test at boot"
+       help
+         Enable this option to test the atomic64_t functions at boot.
+         If unsure, say N.
+ config ASYNC_RAID6_TEST
+       tristate "Self test for hardware accelerated raid6 recovery"
+       depends on ASYNC_RAID6_RECOV
+       select ASYNC_MEMCPY
+       ---help---
+         This is a one-shot self test that permutes through the
+         recovery of all the possible two disk failure scenarios for a
+         N-disk array.  Recovery is performed with the asynchronous
+         raid6 recovery routines, and will optionally use an offload
+         engine if one is available.
+         If unsure, say N.
+ config TEST_STRING_HELPERS
+       tristate "Test functions located in the string_helpers module at runtime"
+ config TEST_KSTRTOX
+       tristate "Test kstrto*() family of functions at runtime"
+ endmenu # runtime tests
  config PROVIDE_OHCI1394_DMA_INIT
        bool "Remote debugging over FireWire early on boot"
        depends on PCI && X86
@@@ -1388,75 -1517,6 +1530,6 @@@ config BUILD_DOCSR
  
          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
          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"
This page took 0.124404 seconds and 4 git commands to generate.