All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] KCONFIG: With a simple menuconfig, kernel debugging is prettier.
@ 2008-04-24 23:31 Robert P. J. Day
  2008-05-06 20:58 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Robert P. J. Day @ 2008-04-24 23:31 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Andrew Morton


Implementing kernel debugging with a menuconfig allows for the removal
of a pile of unnecessary dependencies.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>

---

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 623ef24..a422e0e 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -114,15 +114,17 @@ config DEBUG_SECTION_MISMATCH
 	  - Enable verbose reporting from modpost to help solving
 	    the section mismatches reported.

-config DEBUG_KERNEL
+menuconfig DEBUG_KERNEL
 	bool "Kernel debugging"
 	help
 	  Say Y here if you are developing drivers or trying to debug and
 	  identify kernel problems.

+if DEBUG_KERNEL
+
 config DEBUG_SHIRQ
 	bool "Debug shared IRQ handlers"
-	depends on DEBUG_KERNEL && GENERIC_HARDIRQS
+	depends on 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.
@@ -131,7 +133,7 @@ config DEBUG_SHIRQ

 config DETECT_SOFTLOCKUP
 	bool "Detect Soft Lockups"
-	depends on DEBUG_KERNEL && !S390
+	depends on !S390
 	default y
 	help
 	  Say Y here to enable the kernel to detect "soft lockups",
@@ -150,7 +152,7 @@ config DETECT_SOFTLOCKUP

 config SCHED_DEBUG
 	bool "Collect scheduler debugging info"
-	depends on DEBUG_KERNEL && PROC_FS
+	depends on PROC_FS
 	default y
 	help
 	  If you say Y here, the /proc/sched_debug file will be provided
@@ -159,7 +161,7 @@ config SCHED_DEBUG

 config SCHEDSTATS
 	bool "Collect scheduler statistics"
-	depends on DEBUG_KERNEL && PROC_FS
+	depends on PROC_FS
 	help
 	  If you say Y here, additional code will be inserted into the
 	  scheduler and related routines to collect statistics about
@@ -171,7 +173,7 @@ config SCHEDSTATS

 config TIMER_STATS
 	bool "Collect kernel timers statistics"
-	depends on DEBUG_KERNEL && PROC_FS
+	depends on PROC_FS
 	help
 	  If you say Y here, additional code will be inserted into the
 	  timer routines to collect statistics about kernel timers being
@@ -185,7 +187,7 @@ config TIMER_STATS

 config DEBUG_SLAB
 	bool "Debug slab memory allocations"
-	depends on DEBUG_KERNEL && SLAB
+	depends on SLAB
 	help
 	  Say Y here to have the kernel do limited verification on memory
 	  allocation as well as poisoning memory on free to catch use of freed
@@ -195,35 +197,9 @@ config DEBUG_SLAB_LEAK
 	bool "Memory leak debugging"
 	depends on DEBUG_SLAB

-config SLUB_DEBUG_ON
-	bool "SLUB debugging on by default"
-	depends on SLUB && SLUB_DEBUG
-	default n
-	help
-	  Boot with debugging on by default. SLUB boots by default with
-	  the runtime debug capabilities switched off. Enabling this is
-	  equivalent to specifying the "slub_debug" parameter on boot.
-	  There is no support for more fine grained debug control like
-	  possible with slub_debug=xxx. SLUB debugging may be switched
-	  off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
-	  "slub_debug=-".
-
-config SLUB_STATS
-	default n
-	bool "Enable SLUB performance statistics"
-	depends on SLUB && 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"
-	depends on DEBUG_KERNEL && PREEMPT && (TRACE_IRQFLAGS_SUPPORT || PPC64)
+	depends on PREEMPT && (TRACE_IRQFLAGS_SUPPORT || PPC64)
 	default y
 	help
 	  If you say Y here then the kernel will use a debug variant of the
@@ -233,7 +209,7 @@ config DEBUG_PREEMPT

 config DEBUG_RT_MUTEXES
 	bool "RT Mutex debugging, deadlock detection"
-	depends on DEBUG_KERNEL && RT_MUTEXES
+	depends on RT_MUTEXES
 	help
 	 This allows rt mutex semantics violations and rt mutex related
 	 deadlocks (lockups) to be detected and reported automatically.
@@ -245,13 +221,12 @@ config DEBUG_PI_LIST

 config RT_MUTEX_TESTER
 	bool "Built-in scriptable tester for rt-mutexes"
-	depends on DEBUG_KERNEL && RT_MUTEXES
+	depends on RT_MUTEXES
 	help
 	  This option enables a rt-mutex tester.

 config DEBUG_SPINLOCK
 	bool "Spinlock and rw-lock debugging: basic checks"
-	depends on DEBUG_KERNEL
 	help
 	  Say Y here and build SMP to catch missing spinlock initialization
 	  and certain other kinds of spinlock errors commonly made.  This is
@@ -260,14 +235,13 @@ config DEBUG_SPINLOCK

 config DEBUG_MUTEXES
 	bool "Mutex debugging: basic checks"
-	depends on DEBUG_KERNEL
 	help
 	 This feature allows mutex semantics violations to be detected and
 	 reported.

 config DEBUG_LOCK_ALLOC
 	bool "Lock debugging: detect incorrect freeing of live locks"
-	depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
+	depends on TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
 	select DEBUG_SPINLOCK
 	select DEBUG_MUTEXES
 	select LOCKDEP
@@ -281,7 +255,7 @@ config DEBUG_LOCK_ALLOC

 config PROVE_LOCKING
 	bool "Lock debugging: prove locking correctness"
-	depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
+	depends on TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
 	select LOCKDEP
 	select DEBUG_SPINLOCK
 	select DEBUG_MUTEXES
@@ -323,7 +297,7 @@ config PROVE_LOCKING

 config LOCKDEP
 	bool
-	depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
+	depends on TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
 	select STACKTRACE
 	select FRAME_POINTER if !X86 && !MIPS
 	select KALLSYMS
@@ -331,7 +305,7 @@ config LOCKDEP

 config LOCK_STAT
 	bool "Lock usage statistics"
-	depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
+	depends on TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
 	select LOCKDEP
 	select DEBUG_SPINLOCK
 	select DEBUG_MUTEXES
@@ -344,14 +318,13 @@ config LOCK_STAT

 config DEBUG_LOCKDEP
 	bool "Lock dependency engine debugging"
-	depends on DEBUG_KERNEL && LOCKDEP
+	depends on LOCKDEP
 	help
 	  If you say Y here, the lock dependency engine will do
 	  additional runtime checks to debug itself, at the price
 	  of more runtime overhead.

 config TRACE_IRQFLAGS
-	depends on DEBUG_KERNEL
 	bool
 	default y
 	depends on TRACE_IRQFLAGS_SUPPORT
@@ -359,14 +332,12 @@ config TRACE_IRQFLAGS

 config DEBUG_SPINLOCK_SLEEP
 	bool "Spinlock debugging: sleep-inside-spinlock checking"
-	depends on DEBUG_KERNEL
 	help
 	  If you say Y here, various routines which may sleep will become very
 	  noisy if they are called with a spinlock held.

 config DEBUG_LOCKING_API_SELFTESTS
 	bool "Locking API boot-time self-tests"
-	depends on DEBUG_KERNEL
 	help
 	  Say Y here if you want the kernel to run a short self-test during
 	  bootup. The self-test checks whether common types of locking bugs
@@ -377,25 +348,23 @@ config DEBUG_LOCKING_API_SELFTESTS

 config STACKTRACE
 	bool
-	depends on DEBUG_KERNEL
 	depends on STACKTRACE_SUPPORT

 config DEBUG_KOBJECT
 	bool "kobject debugging"
-	depends on DEBUG_KERNEL
 	help
 	  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
+	depends on HIGHMEM
 	help
 	  This options enables addition error checking for high memory systems.
 	  Disable for production systems.

 config DEBUG_BUGVERBOSE
-	bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EMBEDDED
+	bool "Verbose BUG() reporting (adds 70K)" if EMBEDDED
 	depends on BUG
 	depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \
 		   FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300
@@ -407,7 +376,6 @@ config DEBUG_BUGVERBOSE

 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.
@@ -420,7 +388,6 @@ config DEBUG_INFO

 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.
@@ -429,7 +396,6 @@ config DEBUG_VM

 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
@@ -439,7 +405,6 @@ config DEBUG_WRITECOUNT

 config DEBUG_LIST
 	bool "Debug linked list manipulation"
-	depends on DEBUG_KERNEL
 	help
 	  Enable this to turn on extended checks in the linked-list
 	  walking routines.
@@ -448,7 +413,6 @@ config DEBUG_LIST

 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
@@ -458,8 +422,7 @@ config DEBUG_SG

 config FRAME_POINTER
 	bool "Compile the kernel with frame pointers"
-	depends on DEBUG_KERNEL && \
-		(X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390 || \
+	depends on (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390 || \
 		 AVR32 || SUPERH || BLACKFIN || MN10300)
 	default y if DEBUG_INFO && UML
 	help
@@ -470,7 +433,7 @@ config FRAME_POINTER

 config BOOT_PRINTK_DELAY
 	bool "Delay each boot printk message by N milliseconds"
-	depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
+	depends on 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
@@ -488,7 +451,6 @@ config BOOT_PRINTK_DELAY

 config RCU_TORTURE_TEST
 	tristate "torture tests for RCU"
-	depends on DEBUG_KERNEL
 	depends on m
 	default n
 	help
@@ -501,7 +463,6 @@ config RCU_TORTURE_TEST

 config KPROBES_SANITY_TEST
 	bool "Kprobes sanity tests"
-	depends on DEBUG_KERNEL
 	depends on KPROBES
 	default n
 	help
@@ -513,7 +474,6 @@ config KPROBES_SANITY_TEST

 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
@@ -525,7 +485,6 @@ config BACKTRACE_SELF_TEST

 config LKDTM
 	tristate "Linux Kernel Dump Test Tool Module"
-	depends on DEBUG_KERNEL
 	depends on KPROBES
 	depends on BLOCK
 	default n
@@ -541,7 +500,6 @@ config LKDTM

 config FAULT_INJECTION
 	bool "Fault-injection framework"
-	depends on DEBUG_KERNEL
 	help
 	  Provide fault-injection framework.
 	  For more details, see Documentation/fault-injection/.
@@ -579,6 +537,34 @@ config FAULT_INJECTION_STACKTRACE_FILTER
 	help
 	  Provide stacktrace filter for fault-injection capabilities

+endif # DEBUG_KERNEL
+
+config SLUB_DEBUG_ON
+	bool "SLUB debugging on by default"
+	depends on SLUB && SLUB_DEBUG
+	default n
+	help
+	  Boot with debugging on by default. SLUB boots by default with
+	  the runtime debug capabilities switched off. Enabling this is
+	  equivalent to specifying the "slub_debug" parameter on boot.
+	  There is no support for more fine grained debug control like
+	  possible with slub_debug=xxx. SLUB debugging may be switched
+	  off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
+	  "slub_debug=-".
+
+config SLUB_STATS
+	default n
+	bool "Enable SLUB performance statistics"
+	depends on SLUB && 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 LATENCYTOP
 	bool "Latency measuring infrastructure"
 	select FRAME_POINTER if !MIPS

========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry:
    Have classroom, will lecture.

http://crashcourse.ca                          Waterloo, Ontario, CANADA
========================================================================

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] KCONFIG: With a simple menuconfig, kernel debugging is prettier.
  2008-04-24 23:31 [PATCH] KCONFIG: With a simple menuconfig, kernel debugging is prettier Robert P. J. Day
@ 2008-05-06 20:58 ` Andrew Morton
  2008-05-12  8:19   ` Robert P. J. Day
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2008-05-06 20:58 UTC (permalink / raw)
  To: Robert P. J. Day; +Cc: linux-kernel

On Thu, 24 Apr 2008 19:31:26 -0400 (EDT)
"Robert P. J. Day" <rpjday@crashcourse.ca> wrote:

> Implementing kernel debugging with a menuconfig allows for the removal
> of a pile of unnecessary dependencies.

 Kconfig.debug |  112 +++++++++++++++++++++++++---------------------------------
 1 file changed, 49 insertions(+), 63 deletions(-)

I'm afraid,

akpm:/usr/src/25> grep -l lib/Kconfig.debug pc/*.pc
pc/documentation-build-source-files-in-documentation-sub-dir-disable.pc
pc/documentation-build-source-files-in-documentation-sub-dir.pc
pc/git-sched.pc
pc/git-x86-latest.pc
pc/linux-next.pc
pc/make-frame_pointer-default=y.pc
pc/mm-add-a-basic-debugging-framework-for-memory-initialisation.pc
pc/mutex-subsystem-synchro-test-module.pc
pc/page-owner-tracking-leak-detector.pc
pc/profile-likely-unlikely-macros.pc
pc/slab-leaks3-default-y.pc

that our chances of finding a window in which to merge this patch are
pretty darn small.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] KCONFIG: With a simple menuconfig, kernel debugging is prettier.
  2008-05-06 20:58 ` Andrew Morton
@ 2008-05-12  8:19   ` Robert P. J. Day
  0 siblings, 0 replies; 3+ messages in thread
From: Robert P. J. Day @ 2008-05-12  8:19 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Tue, 6 May 2008, Andrew Morton wrote:

> On Thu, 24 Apr 2008 19:31:26 -0400 (EDT)
> "Robert P. J. Day" <rpjday@crashcourse.ca> wrote:
>
> > Implementing kernel debugging with a menuconfig allows for the removal
> > of a pile of unnecessary dependencies.
>
>  Kconfig.debug |  112 +++++++++++++++++++++++++---------------------------------
>  1 file changed, 49 insertions(+), 63 deletions(-)
>
> I'm afraid,
>
> akpm:/usr/src/25> grep -l lib/Kconfig.debug pc/*.pc
> pc/documentation-build-source-files-in-documentation-sub-dir-disable.pc
> pc/documentation-build-source-files-in-documentation-sub-dir.pc
> pc/git-sched.pc
> pc/git-x86-latest.pc
> pc/linux-next.pc
> pc/make-frame_pointer-default=y.pc
> pc/mm-add-a-basic-debugging-framework-for-memory-initialisation.pc
> pc/mutex-subsystem-synchro-test-module.pc
> pc/page-owner-tracking-leak-detector.pc
> pc/profile-likely-unlikely-macros.pc
> pc/slab-leaks3-default-y.pc
>
> that our chances of finding a window in which to merge this patch
> are pretty darn small.

fair enough, but is there any sort of reorg that can be done with the
kernel debugging menu?  it really is getting a bit out of hand.  at
the very least, could it be collected into related categories?

rday
--

========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry:
    Have classroom, will lecture.

http://crashcourse.ca                          Waterloo, Ontario, CANADA
========================================================================

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-05-12  8:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-24 23:31 [PATCH] KCONFIG: With a simple menuconfig, kernel debugging is prettier Robert P. J. Day
2008-05-06 20:58 ` Andrew Morton
2008-05-12  8:19   ` Robert P. J. Day

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.