Messages in this thread | | | Date | Tue, 17 Nov 2009 06:57:59 -0800 (PST) | From | just2ducky1234-1@yahoo ... | Subject | Re: Jiffies jumping with the x86 HPET |
| |
Thanks for your reply, now this problem is with customers, so a patch would probably be best. But I was mainly hoping for confirmation of the scenario and the one-liner (one-byte!) fix, since we can cobble something together to implement a patch. Also I wanted to get information out on Google, in case someone else encounters the problem, since there don't seem to be any hits on this.
Regards, Lee
________________________________ From: Michael Tokarev <mjt@tls.msk.ru> To: Lee Merrill <lee_merrill@yahoo.com> Cc: LKML <linux-kernel@vger.kernel.org> Sent: Tue, November 17, 2009 9:05:15 AM Subject: Re: Jiffies jumping with the x86 HPET
Lee Merrill wrote: > We are seeing jiffies go forward occasionally, by 300 seconds, this it appears is due to the following code in the 2.6.16 kernel: > > mark_offset_tsc_hpet(void): > ... > 1 hpet_current = hpet_readl(HPET_COUNTER); > 2 rdtsc(last_tsc_low, last_tsc_high); > 3 > 4 /* lost tick compensation */ > 5 offset = hpet_readl(HPET_T0_CMP) - hpet_tick; > 6 if (unlikely(((offset - hpet_last) > hpet_tick) && (hpet_last != 0)) > 7 && detect_lost_ticks) { > 8 int lost_ticks = (offset - hpet_last) / hpet_tick; > 9 jiffies_64 += lost_ticks; > 10 } > 11 hpet_last = hpet_current;
There is no such code in current (2.6.31 or even 2.6.27.y) kernel. Both hpet support and timer/clock code received huge changes in 2.6.24+ kernels. I guess your best bet is to upgrade.
/mjt
| |