diff options
| author | Andrew Morton <akpm@digeo.com> | 2003-04-29 17:33:21 -0700 |
|---|---|---|
| committer | Christoph Hellwig <hch@lst.de> | 2003-04-29 17:33:21 -0700 |
| commit | ba0846e2f7b73b81f9b2b12bb61e329eb2dc282b (patch) | |
| tree | 5cd659b6b140cc6a5efc15f295a29c7faeeab2e1 | |
| parent | 75ab6eef09e017eff1006603fc4ac7c04cc6d7d7 (diff) | |
[PATCH] lost_tick fixes
From: john stultz <johnstul@us.ibm.com>
- Whitespace fixes
- Fix for the case where HZ != 1000 (pointed out by Mika Penttila).
| -rw-r--r-- | arch/i386/kernel/timers/timer_cyclone.c | 12 | ||||
| -rw-r--r-- | arch/i386/kernel/timers/timer_tsc.c | 9 |
2 files changed, 12 insertions, 9 deletions
diff --git a/arch/i386/kernel/timers/timer_cyclone.c b/arch/i386/kernel/timers/timer_cyclone.c index 7cdf4d7bca6f..0d2c2baf2a64 100644 --- a/arch/i386/kernel/timers/timer_cyclone.c +++ b/arch/i386/kernel/timers/timer_cyclone.c @@ -67,11 +67,11 @@ static void mark_offset_cyclone(void) /* lost tick compensation */ delta = last_cyclone_low - delta; - delta /=(CYCLONE_TIMER_FREQ/1000000); + delta /= (CYCLONE_TIMER_FREQ/1000000); delta += delay_at_last_interrupt; lost = delta/(1000000/HZ); delay = delta%(1000000/HZ); - if(lost >= 2) + if (lost >= 2) jiffies += lost-1; /* update the monotonic base value */ @@ -83,10 +83,12 @@ static void mark_offset_cyclone(void) count = ((LATCH-1) - count) * TICK_SIZE; delay_at_last_interrupt = (count + LATCH/2) / LATCH; - /* catch corner case where tick rollover - * occured between cyclone and pit reads + + /* catch corner case where tick rollover occured + * between cyclone and pit reads (as noted when + * usec delta is > 90% # of usecs/tick) */ - if(abs(delay - delay_at_last_interrupt) > 900) + if (abs(delay - delay_at_last_interrupt) > (900000/HZ)) jiffies++; } diff --git a/arch/i386/kernel/timers/timer_tsc.c b/arch/i386/kernel/timers/timer_tsc.c index e7c126d30e42..02de71f68d9e 100644 --- a/arch/i386/kernel/timers/timer_tsc.c +++ b/arch/i386/kernel/timers/timer_tsc.c @@ -178,7 +178,7 @@ static void mark_offset_tsc(void) delta += delay_at_last_interrupt; lost = delta/(1000000/HZ); delay = delta%(1000000/HZ); - if(lost >= 2) + if (lost >= 2) jiffies += lost-1; /* update the monotonic base value */ @@ -190,10 +190,11 @@ static void mark_offset_tsc(void) count = ((LATCH-1) - count) * TICK_SIZE; delay_at_last_interrupt = (count + LATCH/2) / LATCH; - /* catch corner case where tick rollover - * occured between tsc and pit reads + /* catch corner case where tick rollover occured + * between tsc and pit reads (as noted when + * usec delta is > 90% # of usecs/tick) */ - if(abs(delay - delay_at_last_interrupt) > 900) + if (abs(delay - delay_at_last_interrupt) > (900000/HZ)) jiffies++; } |
