* Re: Fw: missing #if for 1000 HZ
[not found] <20030725203843.569863bc.akpm@osdl.org>
@ 2003-07-28 21:55 ` george anzinger
0 siblings, 0 replies; only message in thread
From: george anzinger @ 2003-07-28 21:55 UTC (permalink / raw)
To: Andrew Morton; +Cc: john stultz, Albert Cahalan, linux-kernel, Ulrich.Windl
Andrew Morton wrote:
> Guys?
If I understand what is being done, he is right. By this measure the
current error in the div (by shifting) is 2.4%.
I wonder how this plays with(line 639):
time_phase += time_adj;
if (time_phase <= -FINENSEC) {
long ltemp = -time_phase >> (SHIFT_SCALE - 10);
time_phase += ltemp << (SHIFT_SCALE - 10);
delta_nsec -= ltemp;
}
where, we are also using >>10 ~= /1000. I _think_ this ladder
approximation only delays part of the correction but does not loose
it, but the more eyes the better.
-g
>
> Begin forwarded message:
>
> Date: 22 Jul 2003 21:01:16 -0400
> From: Albert Cahalan <albert@users.sourceforge.net>
> To: linux-kernel@vger.kernel.org, Ulrich.Windl@rz.uni-regensburg.de
> Cc: Andrew Morton <akpm@digeo.com>, alan@redhat.com
> Subject: missing #if for 1000 HZ
>
>
> This should improve timekeeping a bit @ 1000 HZ.
>
>
> diff -Naurd old/kernel/timer.c new/kernel/timer.c
> --- old/kernel/timer.c 2003-07-18 17:27:01.000000000 -0400
> +++ new/kernel/timer.c 2003-07-18 17:32:19.000000000 -0400
> @@ -606,6 +606,15 @@
> 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()" */
>
>
>
>
--
George Anzinger george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-07-28 21:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20030725203843.569863bc.akpm@osdl.org>
2003-07-28 21:55 ` Fw: missing #if for 1000 HZ george anzinger
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.