Re: [RFC] New Time of day proposal (updated 9/2/04)

George Anzinger
2004-09-07T18:36:46Z

Christoph Lameter wrote:
> On Sat, 4 Sep 2004, Andi Kleen wrote:
>
>
>>On Fri, Sep 03, 2004 at 01:11:58PM -0700, john stultz wrote:
>>
>>>The timeofday_hook (should be timeofday_interrupt_hook, my bad) is
>>>called by the semi-periodic-irregular-interval(also known as "timer")
>>>interrupt. Its what does the housekeeping for all the timeofday code so
>>>we don't run into a counter overflow.
>>>
>>>monotonic_clock() is an accessor that returns the amount of time that
>>>has been accumulated since boot in nanoseconds.
>>
>>Ok, but you need different low level drivers for those. The TSC is not
>>stable enough as a long term time source, but it is best&fastest for
>>the offset calculation between timer interrupts.
>
>
> I thought the NTP daemon etc would even that out? ITC (TSC on IA64) is
> used by default on IA64 for all time keeping purposes. The CPU has on chip
> support for timer interrupt generation.

Yes, and it is designed (read the "rock" is carefully choosen) for time keeping.
On the x86 the "rock" drives the pm timer and the PIT, but a somewhat less
stable "rock" drives the TSC.

Also, we don't "know" what rate the TSC is actully clocking so we must
"discover" it at boot time. This process either is inaccurate or slow (I think
we use ~ 50 ms these days which gives an error of ~10 TSC cycles on a 800MHZ
box). FWIW the problem here is the sync up with the I/O backplane to find the
start and ending of the measured time.

I suspect that the IA64 "tells" you what its clock rate is. Right?
>

--
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