-
- Downloads
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>
Showing
- Documentation/kernel-parameters.txt 5 additions, 0 deletionsDocumentation/kernel-parameters.txt
- include/asm-generic/vmlinux.lds.h 9 additions, 1 deletioninclude/asm-generic/vmlinux.lds.h
- include/linux/device.h 5 additions, 1 deletioninclude/linux/device.h
- include/linux/dynamic_printk.h 93 additions, 0 deletionsinclude/linux/dynamic_printk.h
- include/linux/kernel.h 6 additions, 1 deletioninclude/linux/kernel.h
- include/linux/module.h 0 additions, 1 deletioninclude/linux/module.h
- kernel/module.c 31 additions, 0 deletionskernel/module.c
- lib/Kconfig.debug 55 additions, 0 deletionslib/Kconfig.debug
- lib/Makefile 2 additions, 0 deletionslib/Makefile
- lib/dynamic_printk.c 418 additions, 0 deletionslib/dynamic_printk.c
- net/netfilter/nf_conntrack_pptp.c 1 addition, 1 deletionnet/netfilter/nf_conntrack_pptp.c
- scripts/Makefile.lib 10 additions, 1 deletionscripts/Makefile.lib
- scripts/basic/Makefile 1 addition, 1 deletionscripts/basic/Makefile
- scripts/basic/hash.c 64 additions, 0 deletionsscripts/basic/hash.c
Loading
Please register or sign in to comment