On Fri, 27 Apr 2007 13:51:28 -0700 Tim Hockin wrote: > This is the third version of this patch. The only change from the prior > version is to use time_after_eq(). > > diff -pruN linux-2.6.20/arch/x86_64/kernel/mce.c > linux-2.6.20+th/arch/x86_64/kernel/mce.c > --- linux-2.6.20/arch/x86_64/kernel/mce.c 2007-04-27 10:01:02.000000000 > -0700 > +++ linux-2.6.20+th/arch/x86_64/kernel/mce.c 2007-04-27 10:41:02.000000000 > -0700 > @@ -349,17 +351,30 @@ static void mcheck_timer(struct work_str > * writes. > */ > if (notify_user && console_logged) { > + static unsigned long last_print = 0;
Don't need to init statics to 0... > + unsigned long now = jiffies; > + > + /* if we logged an MCE, reduce the polling interval */ > + next_interval = max(next_interval/2, HZ/100); > notify_user = 0; > clear_bit(0, &console_logged); > - printk(KERN_INFO "Machine check events logged\n"); > + if (time_after_eq(now, last_print + (check_interval*HZ))) { > + last_print = now; > + printk(KERN_INFO "Machine check events logged\n"); > + } > + } else { > + next_interval = min(next_interval*2, check_interval*HZ); > } > + > + schedule_delayed_work(&mcheck_work, next_interval); > } --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/