On Tue, 15 Sep 2009, Thomas Gleixner wrote: > On Tue, 15 Sep 2009, Uwe Kleine-König wrote: > > On Tue, Sep 15, 2009 at 05:29:17PM +0200, Thomas Gleixner wrote: > > > He, what is decreasing min_delta_ns ? There is no such code. > > hrtimer_interrupt_hanging() can decrease min_delta_ns. > > > > Look at Bo's reports: min_delta_ns is initially 61036 and he gets > > > > hrtimer: interrupt too slow, forcing clock min delta to 52482 ns > > So the problem is that min delta is too small due to an unhandled > 32bit overflow. > > But that's not a decrease by any means. It's simply an 32bit overflow > bug which needs to be fixed. Ok. I read the whole thread back to avoid further confusion. Looking at the code it's pretty simple to explain. The time delta is multiplied times 3 and unconditionally stored in min_delta_ns. That needs to be fixed but the real problem is how the delta is calculated. We take it from the last iteration and not across the 5 iterations which trigger the hang check. I'm queuing a fix for that for maninline and the -rt11 release (I already uploaded -rt10). Thanks, tglx