I'm running 2.3.99pre9 on a non-overclocked dual PIII-450 (Intel
N440BX mobo).  I've had system clock problems forever, and they seem
to have something to do with my XiG Accelerated X server.  (I have a
3Dfx Voodoo 3000 PCI video card).

In 2.3.99pre9, I tracked the problem down to the i8253 timer read in
linux/arch/i386/kernel/time.c:431 timer_interrupt: the value read from
the countdown timer is greater than what the time constant should be,
which causes all sorts of signed/unsigned problems, and results in the
clock jumping around erratically.

I added code to re-read the timer if the value is too large (thinking 
that perhaps the timer interrupt was happening in the middle of
somebody else's timer read), but most of the time, the second read is
also out of range.  Now I reset the time constant if the second read
is bad, and the system is fairly happy.

I can reliably cause the problem to occur by running the decayscreen
screensaver hack from xscreensaver-3.24 in fullscreen mode, but
there's nothing particularly scary in the decayscreen code, and the
binary is not setuid.

I'm at a loss for how to proceed: even when the time constant appears
to have been changed, the system still gets interrupted 100 times/sec,
and about 5-10% of the time, simply re-reading the counter gives a
reasonable count.

I'm inclined to write it off to flaky hardware and live with the
kernel hack, but thought I'd let the world at large know in case it
fits in with somebody else's puzzle.

regards,
d.
-
Linux SMP list: FIRST see FAQ at http://www.irisa.fr/prive/dmentre/smp-howto/
To Unsubscribe: send "unsubscribe linux-smp" to [EMAIL PROTECTED]

Reply via email to