* [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.