Re: [PATCH 7/8] badpage: ratelimit print_bad_pte and bad_page

Hugh Dickins
2008-12-03T13:04:17Z

On Tue, 2 Dec 2008, Andrew Morton wrote:
> On Mon, 1 Dec 2008 00:46:53 +0000 (GMT)
> Hugh Dickins <hugh@veritas.com> wrote:
> > + /*
> > + * Allow a burst of 60 reports, then keep quiet for that minute;
> > + * or allow a steady drip of one report per second.
> > + */
> > + if (nr_shown == 60) {
> > + if (time_before(jiffies, resume)) {
> > + nr_unshown++;
> > + goto out;
> > + }
> > + if (nr_unshown) {
> > + printk(KERN_EMERG
> > + "Bad page state: %lu messages suppressed\n",
> > + nr_unshown);
> > + nr_unshown = 0;
> > + }
> > + nr_shown = 0;
> > + }
> > + if (nr_shown++ == 0)
> > + resume = jiffies + 60 * HZ;
> > +
>
> gee, that's pretty elaborate. There's no way of using the
> possibly-enhanced ratelimit.h?

Thanks a lot for the pointer: I'd browsed around kernel/printk.c and
not found what I needed, hadn't realized there's a lib/ratelimit.c.

It looks eerily like what I'm trying to do, just a less specific
missed/suppressed message, never mind that. I'll try making a patch
later to replace this (in its subsequent KERN_ALERT form) by that -
in doing so, perhaps I'll encounter a problem, but should be good.

Hugh