aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorJason Baron <jbaron@redhat.com>2008-08-12 16:46:19 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2008-10-16 12:24:47 -0400
commit346e15beb5343c2eb8216d820f2ed8f150822b08 (patch)
tree6433cf2980bbfbed4a9482c5edb156fc8371e071 /Documentation
parent33376c1c043c05077b4ac79c33804266f6c45e49 (diff)
driver core: basic infrastructure for per-module dynamic debug messages
Base infrastructure to enable per-module debug messages. I've introduced CONFIG_DYNAMIC_PRINTK_DEBUG, which when enabled centralizes control of debugging statements on a per-module basis in one /proc file, currently, <debugfs>/dynamic_printk/modules. When, CONFIG_DYNAMIC_PRINTK_DEBUG, is not set, debugging statements can still be enabled as before, often by defining 'DEBUG' for the proper compilation unit. Thus, this patch set has no affect when CONFIG_DYNAMIC_PRINTK_DEBUG is not set. The infrastructure currently ties into all pr_debug() and dev_dbg() calls. That is, if CONFIG_DYNAMIC_PRINTK_DEBUG is set, all pr_debug() and dev_dbg() calls can be dynamically enabled/disabled on a per-module basis. Future plans include extending this functionality to subsystems, that define their own debug levels and flags. Usage: Dynamic debugging is controlled by the debugfs file, <debugfs>/dynamic_printk/modules. This file contains a list of the modules that can be enabled. The format of the file is as follows: <module_name> <enabled=0/1> . . . <module_name> : Name of the module in which the debug call resides <enabled=0/1> : whether the messages are enabled or not For example: snd_hda_intel enabled=0 fixup enabled=1 driver enabled=0 Enable a module: $echo "set enabled=1 <module_name>" > dynamic_printk/modules Disable a module: $echo "set enabled=0 <module_name>" > dynamic_printk/modules Enable all modules: $echo "set enabled=1 all" > dynamic_printk/modules Disable all modules: $echo "set enabled=0 all" > dynamic_printk/modules Finally, passing "dynamic_printk" at the command line enables debugging for all modules. This mode can be turned off via the above disable command. [gkh: minor cleanups and tweaks to make the build work quietly] Signed-off-by: Jason Baron <jbaron@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/kernel-parameters.txt5
1 files changed, 5 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 2443f5bb4364..b429c84ceef2 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1713,6 +1713,11 @@ and is between 256 and 4096 characters. It is defined in the file
1713 autoconfiguration. 1713 autoconfiguration.
1714 Ranges are in pairs (memory base and size). 1714 Ranges are in pairs (memory base and size).
1715 1715
1716 dynamic_printk
1717 Enables pr_debug()/dev_dbg() calls if
1718 CONFIG_DYNAMIC_PRINTK_DEBUG has been enabled. These can also
1719 be switched on/off via <debugfs>/dynamic_printk/modules
1720
1716 print-fatal-signals= 1721 print-fatal-signals=
1717 [KNL] debug: print fatal signals 1722 [KNL] debug: print fatal signals
1718 print-fatal-signals=1: print segfault info to 1723 print-fatal-signals=1: print segfault info to