> The measurement is showing that the tsc clock (cycle timer) and the
> worthless 8253 timer are drifting apart.  On oneshot, we resynchronize
> at every interrupt, but in periodic mode we do not. In practice
> this problem is generally not serious: the timer does generate a
> good periodic interrupt, it is just that it does not track the
> cycle timer.

Bad explanation, it blames the 8253 for a fault that does not belong to
him.

The problem is simply that the number used to calibrate the 8253 against
the CPU time stamp clock (TSC) is imprecise, likely 1/1E5(6). So you
have the drift. 

In practice the periodic mode goes fine not because it is recalibrated
at each interrupt but just because the time comes always from the TSC
and is just the single shot that is measured on either the the LOCAL
APIC or the 8253. So your single shot is precise 1/1E5(6) that is more
than enough since every single shot is timed relatively to the TSC.

Thing can be improved a little if you calibrate accurately, but you
cannot use two different time sources for a long lasting timing in any
case. So, apart from the example you cite, never use the TSC to measure
the time with a periodic timer. For such a case the only thing that you
can rely on a long term is the tick count, i.e. the equivalent to Linux
jiffies.

Ciao, Paolo
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

Reply via email to