Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Sep 1998 09:37:22 +0200
From:      Poul-Henning Kamp <phk@critter.freebsd.dk>
To:        Mike Smith <mike@smith.net.au>
Cc:        current@FreeBSD.ORG, bde@FreeBSD.ORG
Subject:   Re: Death by SIGXCPU (problems with our clock code) 
Message-ID:  <8620.906017842@critter.freebsd.dk>
In-Reply-To: Your message of "Wed, 16 Sep 1998 17:55:15 PDT." <199809170055.RAA01288@dingo.cdrom.com> 

next in thread | previous in thread | raw e-mail | index | archive | help

Mike,

>Since nobody else has taken up my suggestion to instrument the code to 
>find out what's going on, I've shouldered the cross.  

I have my version here instrumented far more than what you've done,
and I have two and a half extra kinds of timecounting hardware
running here in my lab but I have not been able to catch it in
flagrante delico yet, leading me to conclude that some hardware is
involved.

The check in microtime and nanotime are strictly not valid.  The
reason is that both microtime and nanotime are reentrant now, so
you might take an interrupt in the middle of it. 

The reentrancy could possibly be a problem if some spl*() are missing
somewhere else, or if logic is flawed in the code.  You can test
that hypothesis by splalot() around the [get]{micro|nano}[run]time()
functions.

I am puzzeled about the negative fractions and I think they are the
most important clue.

tco_forward() does not do any sanity checks on the timecounter, so
if there is some trouble with the hardware (or our method of
accessing it), that would shine straight through.

Can you please add a check to the i8254/tsc get_timecount functions
(in isa/clock.c) which report if the count goes backwards or is
bigger than (1/HZ + epsilon) seconds ?

What machine is this on ?  

What is your timecounter TSC/i8254 ?

BIOS settings ?

Bruce: You mentioned that some i8254 cloneoids didn't implement
the latch correctly any references to that ?

Poul-Henning

--
Poul-Henning Kamp             FreeBSD coreteam member
phk@FreeBSD.ORG               "Real hackers run -current on their laptop."
"ttyv0" -- What UNIX calls a $20K state-of-the-art, 3D, hi-res color terminal

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8620.906017842>