[lkml]   [2010]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] hangcheck-timer is broken on x86
On Fri, 26 Mar 2010 14:24:23 -0700
Andrew Morton <> wrote:

> On Tue, 23 Mar 2010 23:36:11 -0400
> Yury Polyanskiy <> wrote:
> > The drivers/char/hangcheck-timer.c is doubly broken. First, the
> > following line overflows unsigned long:
> > # define TIMER_FREQ (HZ*loops_per_jiffy)
> >
> > Second, and more importantly, loops_per_jiffy has little to do with the conversion from the
> > the time scale of get_cycles() (aka rdtsc) to the time scale of jiffies.
> It's a bit odd to have a driver be this broken on x86_32 for five years
> without anyone noticing. What are the user-visible effects of these
> shortcomings?

When the overflown value of TIMER_FREQ is abnormally low, it spams the
syslog with KERN_CRIT messages "Hangcheck: hangcheck value past margin!"
But whether it happens or not depends on HZ and lpj in a complex way.
People have hit it occasionally as far as google search can tell.

> Also, please do send us a Signed-off-by: for this patch, as explained
> in Documentation/SubmittingPatches, thanks.


Signed-off-by: Yury Polyanskiy <>

Thank you Andrew!

[unhandled content-type:application/pgp-signature]
 \ /
  Last update: 2010-03-26 22:55    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean