Re: [PATCH v2] dynamic_debug: Restore dev_dbg functionality,optimize stack

From: Andrew Morton
Date: Tue Jul 31 2012 - 17:55:39 EST


On Sat, 28 Jul 2012 00:55:07 -0700
Joe Perches <joe@xxxxxxxxxxx> 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 %pV

This 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
--
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/