Re: [PATCH v2] dynamic_debug: Restore dev_dbg functionality, optimize stack
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2012-07-31 21:55:41
Also in:
lkml
On Sat, 28 Jul 2012 00:55:07 -0700 Joe Perches [off-list ref] wrote:
commit c4e00daaa9 ("driver-core: extend dev_printk() to pass structured data")
changed __dev_printk and broke dynamic-debug's ability to control the
dynamic prefix of dev_dbg(dev,..).
dynamic_emit_prefix() adds "[tid] module:func:line:" to the output and
those additions got lost.
In addition, the current dynamic debug code uses up to 3 recursion
levels via %pV. This can consume quite a bit of stack. Directly
call printk_emit to reduce the recursion depth.
These changes include:
o Remove KERN_DEBUG from dynamic_emit_prefix
o Create and use function create_syslog_header to format the syslog
header for printk_emit uses.
o Call create_syslog_header and neaten __dev_printk
o Call create_syslog_header and printk_emit from dynamic_dev_dbg
o Call create_syslog_header and printk_emit from dynamic_netdev_dbg
o Make __dev_printk and __netdev_printk static not global
o Remove include header declarations of __dev_printk and __netdev_printk
o Remove now unused EXPORT_SYMBOL()s of __dev_printk and __netdev_printk
o Whitespace neatening
Changes in v2:
o Fix dynamic_emit_prefix to always initialize output
o Call create_syslog_header and emit_printk from__netdev_printk and
eliminate call to dev_printk to remove another recursion via %pVThis one causes an oops-on-boot (http://ozlabs.org/~akpm/stuff/IMG_20120731_144047.jpg). v1 didn't do that. config: http://ozlabs.org/~akpm/stuff/config-akpm2