After noticing that the time was spuriously racing of into the unknown
while calling gethrtime() I searched out the problem.
It was a fault in the code dealing with the 8254 counter underflowing. I
suppose it doesn't affect pentium mashines.

anyway in
rtlinux-2.0/rtl/schedulers/i386/rtl_time.c

in the function:
global_8254_gettime()

the offending line: (118)

offset_time += ((c2 < last_c2) ? (last_c2 - c2) / 2
        : (last_c2 - c2 + LATCH2) / 2);

LATCH2 was defined as 0x8000 i cant see how it fixes the rollover.

So I replaced it with some masking tape:

offset_time += ((c2 < last_c2) ? (last_c2 - c2) / 2
        : ((last_c2 - c2)&0x0FFFF) / 2);

and that is all.



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