Re: printk_ratelimit and net_ratelimit conflict and tunable behavior

Joe Perches
2008-02-21T07:01:23Z

On Wed, 2008-02-20 at 22:32 -0800, David Miller wrote:
> > + if (lost) {
> > + printk(KERN_WARNING
> > + "printk: %d %s%smessage%s suppressed.\n",
> > + lost,
> > + (state->facility == 0 ? "" :
> > state->facility),
> > + (state->facility == 0 ? "" : " "),
> > + (lost > 1 ? "s" : ""));
> > + }
> > return 1;
> > }

This compares a pointer to 0.

How about something like:

if (lost)
pr_warn("printk: %s suppressed message count: %d\n",
state->facility ? : "ratelimit", lost);

> > - missed++;
> > + state->missed++;
> > spin_unlock_irqrestore(&ratelimit_lock, flags);
> > return 0;
> > }
> > @@ -1280,8 +1290,18 @@ int printk_ratelimit_burst = 10;
> >
> > int printk_ratelimit(void)
> > {
> > + static struct printk_ratelimit_state limit_state = {
> > + .toks = 10 * 5 * HZ,
> > + .last_jiffies = 0,
> > + .missed = 0,
> > + .limit_jiffies = 5 * HZ,
> > + .limit_burst = 10,
> > + .facility = 0
> > + };
> > +

.facility = NULL