Re: [RFC] dynamic_debug: introduce debug_hex_dump()

From: Vladimir Kondratiev
Date: Wed Nov 14 2012 - 11:18:08 EST


On Wednesday, November 14, 2012 05:41:08 AM Joe Perches wrote:
> On Wed, 2012-11-14 at 14:17 +0200, Vladimir Kondratiev wrote:
> > Introduce debug_hex_dump() that can be dynamically controlled, similar to
> > pr_debug.
>
> (added Jason Baron, Jim Cromie, GregKH and lkml to cc's)
>
> []
>
> > diff --git a/include/linux/printk.h b/include/linux/printk.h
>
> []
>
> > @@ -220,6 +220,20 @@ extern void dump_stack(void) __cold;
> >
> > no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
> >
> > #endifD
> >
> > +#if defined(CONFIG_DYNAMIC_DEBUG)
> > +#define debug_hex_dump(prefix_str, prefix_type, rowsize, \
> > + groupsize, buf, len, ascii) \
> > + dynamic_hex_dump(prefix_str, prefix_type,\
> > + rowsize, groupsize, buf,\
> > + len, ascii)
> > +#else
> > +#define debug_hex_dump(prefix_str, prefix_type, rowsize, \
> > + groupsize, buf, len, ascii) \
> > + print_hex_dump(KERN_DEBUG, prefix_str, \
> > + prefix_type, rowsize, \
> > + groupsize, buf, len, ascii)
> > +#endif
>
> These should be in a different location after print_hex_dump
> is declared. Also for #defines, the indentation doesn't
> need to be so deep.

Ups, correct.

>
> #if defined(CONFIG_DYNAMIC_DEBUG)
> #define debug_hex_dump(prefix_str, prefix_type, rowsize, \
> groupsize, buf, len, ascii) \
> dynamic_hex_dump(prefix_str, prefix_type, \
> rowsize, groupsize, buf, len, ascii)
> #else
> #define debug_hex_dump(prefix_str, prefix_type, rowsize, \
> groupsize, buf, len, ascii) \
> print_hex_dump(KERN_DEBUG, prefix_str, prefix_type, \
> rowsize, groupsize, buf, len, ascii)
> #endif
>
> A better option might be to convert print_hex_dump_bytes()
> to dynamic_debug as that's already KERN_DEBUG. That
> could be simpler overall and it makes existing calls
> become dynamic as well.

And, here it goes (can I call it PATCH?):