2009-10-01 19:12:00

by Joe Perches

[permalink] [raw]
Subject: [RFC PATCH] kernel.h: Add pr_debug_noopt

Many times a developer always wants to emit a KERN_DEBUG level
logging message even if DEBUG is not defined.

These messages today do not have a "pr_<level>" equivalent
and must be coded with printk(KERN_DEBUG.

This means that pr_fmt is not used with these logging messages.

I propose a new shortcut #define pr_<level> be added to kernel.h
to handle these KERN_DEBUG cases not prefixed with pr_fmt.

I'm not happy with the name. Some good alternatives are
already in use in a couple of places.

pr_dbg is #defined in drivers/char/isicom.c
pr_vdebug is #defined in drivers/usb/gadget/u_serial.c

I think it's appropriate to remove and substitute one
or both of these #defines from the files in drivers
and use one or both in kernel.h

Suggestions?

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index d3cd23f..f1f53b9 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -380,6 +380,8 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
#define pr_info(fmt, ...) \
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
+#define pr_debug_noopt(fmt, ...) \
+ printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
#define pr_cont(fmt, ...) \
printk(KERN_CONT fmt, ##__VA_ARGS__)



2009-10-01 19:45:55

by David Daney

[permalink] [raw]
Subject: Re: [RFC PATCH] kernel.h: Add pr_debug_noopt

Joe Perches wrote:
> Many times a developer always wants to emit a KERN_DEBUG level
> logging message even if DEBUG is not defined.
>
> These messages today do not have a "pr_<level>" equivalent
> and must be coded with printk(KERN_DEBUG.
>
> This means that pr_fmt is not used with these logging messages.
>
> I propose a new shortcut #define pr_<level> be added to kernel.h
> to handle these KERN_DEBUG cases not prefixed with pr_fmt.
>
> I'm not happy with the name. Some good alternatives are
> already in use in a couple of places.
>
> pr_dbg is #defined in drivers/char/isicom.c
> pr_vdebug is #defined in drivers/usb/gadget/u_serial.c
>
> I think it's appropriate to remove and substitute one
> or both of these #defines from the files in drivers
> and use one or both in kernel.h
>
> Suggestions?
>
> diff --git a/include/linux/kernel.h b/include/linux/kernel.h
> index d3cd23f..f1f53b9 100644
> --- a/include/linux/kernel.h
> +++ b/include/linux/kernel.h
> @@ -380,6 +380,8 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
> printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
> #define pr_info(fmt, ...) \
> printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
> +#define pr_debug_noopt(fmt, ...) \
> + printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)


To me, 'noopt' is too much like 'nop'.

How about 'mand' or 'ungated' or something similar?

In general I like the concept.

David Daney

2009-10-01 19:57:45

by Joe Perches

[permalink] [raw]
Subject: Re: [RFC PATCH] kernel.h: Add pr_debug_noopt

On Thu, 2009-10-01 at 12:44 -0700, David Daney wrote:
> Joe Perches wrote:
> > --- a/include/linux/kernel.h
> > +++ b/include/linux/kernel.h
> > @@ -380,6 +380,8 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
> > printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
> > #define pr_info(fmt, ...) \
> > printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
> > +#define pr_debug_noopt(fmt, ...) \
> > + printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)

> To me, 'noopt' is too much like 'nop'.

noopt is not ideal. I'd prefer pr_dbg.

> How about 'mand' or 'ungated' or something similar?

Maybe pr_debug_always which is just 1 letter longer