Skip to content

Commit 604ff0d

Browse files
hansendctorvalds
authored andcommitted
kconfig: consolidate printk options
Same deal, take the printk-related things and hide them in a menu. This takes another 4 items out of the top-level menu. Signed-off-by: Dave Hansen <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent 9eade16 commit 604ff0d

File tree

1 file changed

+90
-87
lines changed

1 file changed

+90
-87
lines changed

lib/Kconfig.debug

Lines changed: 90 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
menu "printk and dmesg options"
12

23
config PRINTK_TIME
34
bool "Show timing information on printks"
@@ -25,6 +26,95 @@ config DEFAULT_MESSAGE_LOGLEVEL
2526
that are auditing their logs closely may want to set it to a lower
2627
priority.
2728

29+
config BOOT_PRINTK_DELAY
30+
bool "Delay each boot printk message by N milliseconds"
31+
depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
32+
help
33+
This build option allows you to read kernel boot messages
34+
by inserting a short delay after each one. The delay is
35+
specified in milliseconds on the kernel command line,
36+
using "boot_delay=N".
37+
38+
It is likely that you would also need to use "lpj=M" to preset
39+
the "loops per jiffie" value.
40+
See a previous boot log for the "lpj" value to use for your
41+
system, and then set "lpj=M" before setting "boot_delay=N".
42+
NOTE: Using this option may adversely affect SMP systems.
43+
I.e., processors other than the first one may not boot up.
44+
BOOT_PRINTK_DELAY also may cause LOCKUP_DETECTOR to detect
45+
what it believes to be lockup conditions.
46+
47+
config DYNAMIC_DEBUG
48+
bool "Enable dynamic printk() support"
49+
default n
50+
depends on PRINTK
51+
depends on DEBUG_FS
52+
help
53+
54+
Compiles debug level messages into the kernel, which would not
55+
otherwise be available at runtime. These messages can then be
56+
enabled/disabled based on various levels of scope - per source file,
57+
function, module, format string, and line number. This mechanism
58+
implicitly compiles in all pr_debug() and dev_dbg() calls, which
59+
enlarges the kernel text size by about 2%.
60+
61+
If a source file is compiled with DEBUG flag set, any
62+
pr_debug() calls in it are enabled by default, but can be
63+
disabled at runtime as below. Note that DEBUG flag is
64+
turned on by many CONFIG_*DEBUG* options.
65+
66+
Usage:
67+
68+
Dynamic debugging is controlled via the 'dynamic_debug/control' file,
69+
which is contained in the 'debugfs' filesystem. Thus, the debugfs
70+
filesystem must first be mounted before making use of this feature.
71+
We refer the control file as: <debugfs>/dynamic_debug/control. This
72+
file contains a list of the debug statements that can be enabled. The
73+
format for each line of the file is:
74+
75+
filename:lineno [module]function flags format
76+
77+
filename : source file of the debug statement
78+
lineno : line number of the debug statement
79+
module : module that contains the debug statement
80+
function : function that contains the debug statement
81+
flags : '=p' means the line is turned 'on' for printing
82+
format : the format used for the debug statement
83+
84+
From a live system:
85+
86+
nullarbor:~ # cat <debugfs>/dynamic_debug/control
87+
# filename:lineno [module]function flags format
88+
fs/aio.c:222 [aio]__put_ioctx =_ "__put_ioctx:\040freeing\040%p\012"
89+
fs/aio.c:248 [aio]ioctx_alloc =_ "ENOMEM:\040nr_events\040too\040high\012"
90+
fs/aio.c:1770 [aio]sys_io_cancel =_ "calling\040cancel\012"
91+
92+
Example usage:
93+
94+
// enable the message at line 1603 of file svcsock.c
95+
nullarbor:~ # echo -n 'file svcsock.c line 1603 +p' >
96+
<debugfs>/dynamic_debug/control
97+
98+
// enable all the messages in file svcsock.c
99+
nullarbor:~ # echo -n 'file svcsock.c +p' >
100+
<debugfs>/dynamic_debug/control
101+
102+
// enable all the messages in the NFS server module
103+
nullarbor:~ # echo -n 'module nfsd +p' >
104+
<debugfs>/dynamic_debug/control
105+
106+
// enable all 12 messages in the function svc_process()
107+
nullarbor:~ # echo -n 'func svc_process +p' >
108+
<debugfs>/dynamic_debug/control
109+
110+
// disable all 12 messages in the function svc_process()
111+
nullarbor:~ # echo -n 'func svc_process -p' >
112+
<debugfs>/dynamic_debug/control
113+
114+
See Documentation/dynamic-debug-howto.txt for additional information.
115+
116+
endmenu # "printk and dmesg options"
117+
28118
menu "Compile-time checks and compiler options"
29119

30120
config DEBUG_INFO
@@ -940,24 +1030,6 @@ config DEBUG_CREDENTIALS
9401030

9411031
If unsure, say N.
9421032

943-
config BOOT_PRINTK_DELAY
944-
bool "Delay each boot printk message by N milliseconds"
945-
depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
946-
help
947-
This build option allows you to read kernel boot messages
948-
by inserting a short delay after each one. The delay is
949-
specified in milliseconds on the kernel command line,
950-
using "boot_delay=N".
951-
952-
It is likely that you would also need to use "lpj=M" to preset
953-
the "loops per jiffie" value.
954-
See a previous boot log for the "lpj" value to use for your
955-
system, and then set "lpj=M" before setting "boot_delay=N".
956-
NOTE: Using this option may adversely affect SMP systems.
957-
I.e., processors other than the first one may not boot up.
958-
BOOT_PRINTK_DELAY also may cause LOCKUP_DETECTOR to detect
959-
what it believes to be lockup conditions.
960-
9611033
menu "RCU Debugging"
9621034

9631035
config PROVE_RCU
@@ -1441,75 +1513,6 @@ config BUILD_DOCSRC
14411513

14421514
Say N if you are unsure.
14431515

1444-
config DYNAMIC_DEBUG
1445-
bool "Enable dynamic printk() support"
1446-
default n
1447-
depends on PRINTK
1448-
depends on DEBUG_FS
1449-
help
1450-
1451-
Compiles debug level messages into the kernel, which would not
1452-
otherwise be available at runtime. These messages can then be
1453-
enabled/disabled based on various levels of scope - per source file,
1454-
function, module, format string, and line number. This mechanism
1455-
implicitly compiles in all pr_debug() and dev_dbg() calls, which
1456-
enlarges the kernel text size by about 2%.
1457-
1458-
If a source file is compiled with DEBUG flag set, any
1459-
pr_debug() calls in it are enabled by default, but can be
1460-
disabled at runtime as below. Note that DEBUG flag is
1461-
turned on by many CONFIG_*DEBUG* options.
1462-
1463-
Usage:
1464-
1465-
Dynamic debugging is controlled via the 'dynamic_debug/control' file,
1466-
which is contained in the 'debugfs' filesystem. Thus, the debugfs
1467-
filesystem must first be mounted before making use of this feature.
1468-
We refer the control file as: <debugfs>/dynamic_debug/control. This
1469-
file contains a list of the debug statements that can be enabled. The
1470-
format for each line of the file is:
1471-
1472-
filename:lineno [module]function flags format
1473-
1474-
filename : source file of the debug statement
1475-
lineno : line number of the debug statement
1476-
module : module that contains the debug statement
1477-
function : function that contains the debug statement
1478-
flags : '=p' means the line is turned 'on' for printing
1479-
format : the format used for the debug statement
1480-
1481-
From a live system:
1482-
1483-
nullarbor:~ # cat <debugfs>/dynamic_debug/control
1484-
# filename:lineno [module]function flags format
1485-
fs/aio.c:222 [aio]__put_ioctx =_ "__put_ioctx:\040freeing\040%p\012"
1486-
fs/aio.c:248 [aio]ioctx_alloc =_ "ENOMEM:\040nr_events\040too\040high\012"
1487-
fs/aio.c:1770 [aio]sys_io_cancel =_ "calling\040cancel\012"
1488-
1489-
Example usage:
1490-
1491-
// enable the message at line 1603 of file svcsock.c
1492-
nullarbor:~ # echo -n 'file svcsock.c line 1603 +p' >
1493-
<debugfs>/dynamic_debug/control
1494-
1495-
// enable all the messages in file svcsock.c
1496-
nullarbor:~ # echo -n 'file svcsock.c +p' >
1497-
<debugfs>/dynamic_debug/control
1498-
1499-
// enable all the messages in the NFS server module
1500-
nullarbor:~ # echo -n 'module nfsd +p' >
1501-
<debugfs>/dynamic_debug/control
1502-
1503-
// enable all 12 messages in the function svc_process()
1504-
nullarbor:~ # echo -n 'func svc_process +p' >
1505-
<debugfs>/dynamic_debug/control
1506-
1507-
// disable all 12 messages in the function svc_process()
1508-
nullarbor:~ # echo -n 'func svc_process -p' >
1509-
<debugfs>/dynamic_debug/control
1510-
1511-
See Documentation/dynamic-debug-howto.txt for additional information.
1512-
15131516
config DMA_API_DEBUG
15141517
bool "Enable debugging of DMA-API usage"
15151518
depends on HAVE_DMA_API_DEBUG

0 commit comments

Comments
 (0)