Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[safe/jmp/linux-2.6] / lib / Kconfig.debug
index f3e0c2a..d2099f4 100644 (file)
@@ -9,6 +9,14 @@ config PRINTK_TIME
          operations.  This is useful for identifying long delays
          in kernel startup.
 
          operations.  This is useful for identifying long delays
          in kernel startup.
 
+config ENABLE_WARN_DEPRECATED
+       bool "Enable __deprecated logic"
+       default y
+       help
+         Enable the __deprecated logic in the kernel build.
+         Disable this to suppress the "warning: 'foo' is deprecated
+         (declared at kernel/power/somefile.c:1234)" messages.
+
 config ENABLE_MUST_CHECK
        bool "Enable __must_check logic"
        default y
 config ENABLE_MUST_CHECK
        bool "Enable __must_check logic"
        default y
@@ -17,6 +25,17 @@ config ENABLE_MUST_CHECK
          suppress the "warning: ignoring return value of 'foo', declared with
          attribute warn_unused_result" messages.
 
          suppress the "warning: ignoring return value of 'foo', declared with
          attribute warn_unused_result" messages.
 
+config FRAME_WARN
+       int "Warn for stack frames larger than (needs gcc 4.4)"
+       range 0 8192
+       default 1024 if !64BIT
+       default 2048 if 64BIT
+       help
+         Tell gcc to warn at build time for stack frames larger than this.
+         Setting this too low will cause a lot of warnings.
+         Setting it to 0 disables the warning.
+         Requires gcc 4.4
+
 config MAGIC_SYSRQ
        bool "Magic SysRq key"
        depends on !UML
 config MAGIC_SYSRQ
        bool "Magic SysRq key"
        depends on !UML
@@ -71,6 +90,41 @@ config HEADERS_CHECK
          exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in
          your build tree), to make sure they're suitable.
 
          exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in
          your build tree), to make sure they're suitable.
 
+config DEBUG_SECTION_MISMATCH
+       bool "Enable full Section mismatch analysis"
+       depends on UNDEFINED
+       # This option is on purpose disabled for now.
+       # It will be enabled when we are down to a resonable 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
+         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)
+         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 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
+           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.
+
 config DEBUG_KERNEL
        bool "Kernel debugging"
        help
 config DEBUG_KERNEL
        bool "Kernel debugging"
        help
@@ -140,6 +194,37 @@ config TIMER_STATS
          (it defaults to deactivated on bootup and will only be activated
          if some application like powertop activates it explicitly).
 
          (it defaults to deactivated on bootup and will only be activated
          if some application like powertop activates it explicitly).
 
+config DEBUG_OBJECTS
+       bool "Debug object operations"
+       depends on DEBUG_KERNEL
+       help
+         If you say Y here, additional code will be inserted into the
+         kernel to track the life time of various objects and validate
+         the operations on those objects.
+
+config DEBUG_OBJECTS_SELFTEST
+       bool "Debug objects selftest"
+       depends on DEBUG_OBJECTS
+       help
+         This enables the selftest of the object debug code.
+
+config DEBUG_OBJECTS_FREE
+       bool "Debug objects in freed memory"
+       depends on DEBUG_OBJECTS
+       help
+         This enables checks whether a k/v free operation frees an area
+         which contains an object which has not been deactivated
+         properly. This can make kmalloc/kfree-intensive workloads
+         much slower.
+
+config DEBUG_OBJECTS_TIMERS
+       bool "Debug timer objects"
+       depends on DEBUG_OBJECTS
+       help
+         If you say Y here, additional code will be inserted into the
+         timer routines to track the life time of timer objects and
+         validate the timer operations.
+
 config DEBUG_SLAB
        bool "Debug slab memory allocations"
        depends on DEBUG_KERNEL && SLAB
 config DEBUG_SLAB
        bool "Debug slab memory allocations"
        depends on DEBUG_KERNEL && SLAB
@@ -165,9 +250,22 @@ config SLUB_DEBUG_ON
          off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
          "slub_debug=-".
 
          off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
          "slub_debug=-".
 
+config SLUB_STATS
+       default n
+       bool "Enable SLUB performance statistics"
+       depends on SLUB && SLUB_DEBUG && SYSFS
+       help
+         SLUB statistics are useful to debug SLUBs allocation behavior in
+         order find ways to optimize the allocator. This should never be
+         enabled for production use since keeping statistics slows down
+         the allocator by a few percentage points. The slabinfo command
+         supports the determination of the most active slabs to figure
+         out which slabs are relevant to a particular load.
+         Try running: slabinfo -DA
+
 config DEBUG_PREEMPT
        bool "Debug preemptible kernel"
 config DEBUG_PREEMPT
        bool "Debug preemptible kernel"
-       depends on DEBUG_KERNEL && PREEMPT && TRACE_IRQFLAGS_SUPPORT
+       depends on DEBUG_KERNEL && PREEMPT && (TRACE_IRQFLAGS_SUPPORT || PPC64)
        default y
        help
          If you say Y here then the kernel will use a debug variant of the
        default y
        help
          If you say Y here then the kernel will use a debug variant of the
@@ -209,16 +307,6 @@ config DEBUG_MUTEXES
         This feature allows mutex semantics violations to be detected and
         reported.
 
         This feature allows mutex semantics violations to be detected and
         reported.
 
-config DEBUG_SEMAPHORE
-       bool "Semaphore debugging"
-       depends on DEBUG_KERNEL
-       depends on ALPHA || FRV
-       default n
-       help
-         If you say Y here then semaphore processing will issue lots of
-         verbose debugging messages.  If you suspect a semaphore problem or a
-         kernel hacker asks for this option then say Y.  Otherwise say N.
-
 config DEBUG_LOCK_ALLOC
        bool "Lock debugging: detect incorrect freeing of live locks"
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
 config DEBUG_LOCK_ALLOC
        bool "Lock debugging: detect incorrect freeing of live locks"
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
@@ -284,7 +372,7 @@ config LOCKDEP
        select KALLSYMS_ALL
 
 config LOCK_STAT
        select KALLSYMS_ALL
 
 config LOCK_STAT
-       bool "Lock usage statisitics"
+       bool "Lock usage statistics"
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
        select LOCKDEP
        select DEBUG_SPINLOCK
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
        select LOCKDEP
        select DEBUG_SPINLOCK
@@ -294,6 +382,8 @@ config LOCK_STAT
        help
         This feature enables tracking lock contention points
 
        help
         This feature enables tracking lock contention points
 
+        For more details, see Documentation/lockstat.txt
+
 config DEBUG_LOCKDEP
        bool "Lock dependency engine debugging"
        depends on DEBUG_KERNEL && LOCKDEP
 config DEBUG_LOCKDEP
        bool "Lock dependency engine debugging"
        depends on DEBUG_KERNEL && LOCKDEP
@@ -349,7 +439,8 @@ config DEBUG_HIGHMEM
 config DEBUG_BUGVERBOSE
        bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED
        depends on BUG
 config DEBUG_BUGVERBOSE
        bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED
        depends on BUG
-       depends on ARM || ARM26 || AVR32 || M32R || M68K || SPARC32 || SPARC64 || FRV || SUPERH || GENERIC_BUG || BFIN
+       depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \
+                  FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300
        default !EMBEDDED
        help
          Say Y here to make BUG() panics output the file name and line number
        default !EMBEDDED
        help
          Say Y here to make BUG() panics output the file name and line number
@@ -378,6 +469,16 @@ config DEBUG_VM
 
          If unsure, say N.
 
 
          If unsure, say N.
 
+config DEBUG_WRITECOUNT
+       bool "Debug filesystem writers count"
+       depends on DEBUG_KERNEL
+       help
+         Enable this to catch wrong use of the writers count in struct
+         vfsmount.  This will increase the size of each file struct by
+         32 bits.
+
+         If unsure, say N.
+
 config DEBUG_LIST
        bool "Debug linked list manipulation"
        depends on DEBUG_KERNEL
 config DEBUG_LIST
        bool "Debug linked list manipulation"
        depends on DEBUG_KERNEL
@@ -387,9 +488,21 @@ config DEBUG_LIST
 
          If unsure, say N.
 
 
          If unsure, say N.
 
+config DEBUG_SG
+       bool "Debug SG table operations"
+       depends on DEBUG_KERNEL
+       help
+         Enable this to turn on checks on scatter-gather tables. This can
+         help find problems with drivers that do not properly initialize
+         their sg tables.
+
+         If unsure, say N.
+
 config FRAME_POINTER
        bool "Compile the kernel with frame pointers"
 config FRAME_POINTER
        bool "Compile the kernel with frame pointers"
-       depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390 || AVR32 || SUPERH || BFIN)
+       depends on DEBUG_KERNEL && \
+               (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390 || \
+                AVR32 || SUPERH || BLACKFIN || MN10300)
        default y if DEBUG_INFO && UML
        help
          If you say Y here the resulting kernel image will be slightly larger
        default y if DEBUG_INFO && UML
        help
          If you say Y here the resulting kernel image will be slightly larger
@@ -397,19 +510,23 @@ config FRAME_POINTER
          some architectures or if you use external debuggers.
          If you don't debug the kernel, you can say N.
 
          some architectures or if you use external debuggers.
          If you don't debug the kernel, you can say N.
 
-config FORCED_INLINING
-       bool "Force gcc to inline functions marked 'inline'"
-       depends on DEBUG_KERNEL
-       default y
+config BOOT_PRINTK_DELAY
+       bool "Delay each boot printk message by N milliseconds"
+       depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
        help
        help
-         This option determines if the kernel forces gcc to inline the functions
-         developers have marked 'inline'. Doing so takes away freedom from gcc to
-         do what it thinks is best, which is desirable for the gcc 3.x series of
-         compilers. The gcc 4.x series have a rewritten inlining algorithm and
-         disabling this option will generate a smaller kernel there. Hopefully
-         this algorithm is so good that allowing gcc4 to make the decision can
-         become the default in the future, until then this option is there to
-         test gcc for this.
+         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 DETECT_SOFTLOCKUP to detect
+         what it believes to be lockup conditions.
 
 config RCU_TORTURE_TEST
        tristate "torture tests for RCU"
 
 config RCU_TORTURE_TEST
        tristate "torture tests for RCU"
@@ -424,10 +541,35 @@ config RCU_TORTURE_TEST
          Say M if you want the RCU torture tests to build as a module.
          Say N if you are unsure.
 
          Say M if you want the RCU torture tests to build as a module.
          Say N if you are unsure.
 
+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.
+
+         Say N if you are unsure.
+
 config LKDTM
        tristate "Linux Kernel Dump Test Tool Module"
        depends on DEBUG_KERNEL
        depends on KPROBES
 config LKDTM
        tristate "Linux Kernel Dump Test Tool Module"
        depends on DEBUG_KERNEL
        depends on KPROBES
+       depends on BLOCK
        default n
        help
        This module enables testing of the different dumping mechanisms by
        default n
        help
        This module enables testing of the different dumping mechanisms by
@@ -478,3 +620,60 @@ config FAULT_INJECTION_STACKTRACE_FILTER
        select FRAME_POINTER
        help
          Provide stacktrace filter for fault-injection capabilities
        select FRAME_POINTER
        help
          Provide stacktrace filter for fault-injection capabilities
+
+config LATENCYTOP
+       bool "Latency measuring infrastructure"
+       select FRAME_POINTER if !MIPS
+       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 PROVIDE_OHCI1394_DMA_INIT
+       bool "Remote debugging over FireWire early on boot"
+       depends on PCI && X86
+       help
+         If you want to debug problems which hang or crash the kernel early
+         on boot and the crashing machine has a FireWire port, you can use
+         this feature to remotely access the memory of the crashed machine
+         over FireWire. This employs remote DMA as part of the OHCI1394
+         specification which is now the standard for FireWire controllers.
+
+         With remote DMA, you can monitor the printk buffer remotely using
+         firescope and access all memory below 4GB using fireproxy from gdb.
+         Even controlling a kernel debugger is possible using remote DMA.
+
+         Usage:
+
+         If ohci1394_dma=early is used as boot parameter, it will initialize
+         all OHCI1394 controllers which are found in the PCI config space.
+
+         As all changes to the FireWire bus such as enabling and disabling
+         devices cause a bus reset and thereby disable remote DMA for all
+         devices, be sure to have the cable plugged and FireWire enabled on
+         the debugging host before booting the debug target for debugging.
+
+         This code (~1k) is freed after boot. By then, the firewire stack
+         in charge of the OHCI-1394 controllers should be used instead.
+
+         See Documentation/debugging-via-ohci1394.txt for more information.
+
+config FIREWIRE_OHCI_REMOTE_DMA
+       bool "Remote debugging over FireWire with firewire-ohci"
+       depends on FIREWIRE_OHCI
+       help
+         This option lets you use the FireWire bus for remote debugging
+         with help of the firewire-ohci driver. It enables unfiltered
+         remote DMA in firewire-ohci.
+         See Documentation/debugging-via-ohci1394.txt for more information.
+
+         If unsure, say N.
+
+source "samples/Kconfig"
+
+source "lib/Kconfig.kgdb"