Messages in this thread |  | | | Date | Tue, 10 Nov 2009 08:39:09 +0100 | | From | Ingo Molnar <> | | Subject | Re: [PATCH] kernel.h: Add printk_ratelimited and pr_<level>_rl |
| |
* Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> On Tue, 2009-11-10 at 06:17 +0100, Ingo Molnar wrote: > > * Andrew Morton <akpm@linux-foundation.org> wrote: > > > > > On Fri, 30 Oct 2009 16:21:47 -0700 > > > Joe Perches <joe@perches.com> wrote: > > > > > > > +#define pr_emerg_rl(fmt, ...) \ > > > > + printk_ratelimited(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__) > > > > +#define pr_alert_rl(fmt, ...) \ > > > > + printk_ratelimited(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) > > > > +#define pr_crit_rl(fmt, ...) \ > > > > + printk_ratelimited(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__) > > > > +#define pr_err_rl(fmt, ...) \ > > > > + printk_ratelimited(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) > > > > +#define pr_warning_rl(fmt, ...) \ > > > > + printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) > > > > +#define pr_notice_rl(fmt, ...) \ > > > > + printk_ratelimited(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__) > > > > +#define pr_info_rl(fmt, ...) \ > > > > + printk_ratelimited(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) > > > > > > Would prefer pr_emerg_ratelimited personally. It's longer, but one > > > doesn't ask "wtf does _rl" mean and it avoids having two identifiers > > > which refer to the same thing. > > > > Yeah. It will be rarely used so that it wont ever really be 'obvious at > > a glance', even to folks well versed in kernel source code details. > > Is there a reason for all this pr_ nonsense? will we depricate printk()?
Yes, pr_*() has established itself as a printk shortcut. The benefits of:
pr_info("stuff\n");
versus:
printk(KERN_INFO "stuff\n");
are sufficiently large:
- it's shorter by 9 characters (more than a level of indentation)
- you cannot forget to add a KERN_ prefix - which is required for 98% of all printks but which is forgotten from 50% of the submitted patches.
so pr_*(), while named in a sucky way (all 2 letter abbrevs are sucky), has advantages, makes stuff more readable and reduces churn.
printk wont go away as an ad-hoc print-this tool. (Nor will we convert most of the remaining 18,000+ uses of printk() in the kernel, so printk() will be with us forever i guess.)
Ingo
|  |