Re: dynamic_printk documentation

From: Jason Baron
Date: Tue Dec 23 2008 - 11:23:25 EST


On Tue, Dec 23, 2008 at 01:25:25PM +0100, Tilman Schmidt wrote:
> Where is the current debugfs interface to dynamic_printk documented?
> From the source in lib/dynamic_printk.c I deduced that
>
> echo "set enable=1 <module_name>" > /sys/kernel/debug/dynamic_printk/modules
>
> should enable debug output for module <module_name>, and verified
> experimentally that this does indeed work. Is that already described
> somewhere I just overlooked? If not, I would propose creating a file
> Documentation/dynamic_printk.txt.
>
> Thanks,
> Tilman

hi,

Most of it is with the config parameter definition in lib/Kconfig.debug
(copied below). I can propose copying it into Documentation/ if you think it'd
be useful.

thanks,

-Jason


config DYNAMIC_PRINTK_DEBUG
bool "Enable dynamic printk() call support"
default n
depends on PRINTK
select PRINTK_DEBUG
help

Compiles debug level messages into the kernel, which would not
otherwise be available at runtime. These messages can then be
enabled/disabled on a per module basis. This mechanism implicitly
enables all pr_debug() and dev_dbg() calls. The impact of this
compile option is a larger kernel text size of about 2%.

Usage:

Dynamic debugging is controlled by the debugfs file,
dynamic_printk/modules. This file contains a list of the modules that
can be enabled. The format of the file is the module name, followed
by a set of flags that can be enabled. The first flag is always the
'enabled' flag. For example:

<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

From a live system:

snd_hda_intel enabled=0
fixup enabled=0
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.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/