Messages in this thread | | | Date | Tue, 17 Nov 2009 17:05:15 +0300 | From | Michael Tokarev <> | 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
| |