Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Sep 1998 11:08:56 +0200 (SAT)
From:      John Hay <jhay@mikom.csir.co.za>
To:        phk@critter.freebsd.dk (Poul-Henning Kamp)
Cc:        mike@smith.net.au, current@FreeBSD.ORG, bde@FreeBSD.ORG
Subject:   Re: Death by SIGXCPU (problems with our clock code)
Message-ID:  <199809170908.LAA06018@zibbi.mikom.csir.co.za>
In-Reply-To: <8620.906017842@critter.freebsd.dk> from Poul-Henning Kamp at "Sep 17, 98 09:37:22 am"

next in thread | previous in thread | raw e-mail | index | archive | help
So, do you have better test code that is available, or should I just use
Mike's? I would really also like to find out what the problem is, because
I have just about given up trying to get PPS working properly from sio
interrupts on 486 and SMP machines. On my two machines that use the 8254
for the timecounter I see forward jumps.

John
-- 
John Hay -- John.Hay@mikom.csir.co.za

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



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?199809170908.LAA06018>