summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2003-04-29 17:33:21 -0700
committerChristoph Hellwig <hch@lst.de>2003-04-29 17:33:21 -0700
commitba0846e2f7b73b81f9b2b12bb61e329eb2dc282b (patch)
tree5cd659b6b140cc6a5efc15f295a29c7faeeab2e1
parent75ab6eef09e017eff1006603fc4ac7c04cc6d7d7 (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.c12
-rw-r--r--arch/i386/kernel/timers/timer_tsc.c9
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++;
}