Date: Thu, 17 Sep 1998 11:12:37 +0200 From: Poul-Henning Kamp <phk@critter.freebsd.dk> To: John Hay <jhay@mikom.csir.co.za> Cc: mike@smith.net.au, current@FreeBSD.ORG, bde@FreeBSD.ORG Subject: Re: Death by SIGXCPU (problems with our clock code) Message-ID: <9081.906023557@critter.freebsd.dk> In-Reply-To: Your message of "Sat, 17 Sep 1998 11:08:56 %2B0200." <199809170908.LAA06018@zibbi.mikom.csir.co.za>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <199809170908.LAA06018@zibbi.mikom.csir.co.za>, John Hay writes: >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. No, my code relies on a special hardware buffer for storing stuff, by all means use mikes code and see if you find something, but please also implement something in the two get_timecount() functions, that is the most important place to look. > >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 >> > > > -- 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?9081.906023557>