From 752274c9ef15215e1c9e7855450203326fdc3644 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Thu, 14 Aug 2003 10:06:36 -0700 Subject: [PATCH] [PATCH] missing #if for 1000 HZ From: Albert Cahalan This should improve timekeeping a bit @ 1000 HZ. --- kernel/timer.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kernel/timer.c b/kernel/timer.c index 19e03ef778872..ad4543e5a8714 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -606,6 +606,15 @@ static void second_overflow(void) else time_adj += (time_adj >> 2) + (time_adj >> 5); #endif +#if HZ == 1000 + /* Compensate for (HZ==1000) != (1 << SHIFT_HZ). + * Add 1.5625% and 0.78125% to get 1023.4375; => only 0.05% error (p. 14) + */ + if (time_adj < 0) + time_adj -= (-time_adj >> 6) + (-time_adj >> 7); + else + time_adj += (time_adj >> 6) + (time_adj >> 7); +#endif } /* in the NTP reference this is called "hardclock()" */ -- 2.53.0