From owner-freebsd-current Thu Sep 17 02:14:39 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id CAA00527 for freebsd-current-outgoing; Thu, 17 Sep 1998 02:14:39 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from zibbi.mikom.csir.co.za (zibbi.mikom.csir.co.za [146.64.24.58]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id CAA00354; Thu, 17 Sep 1998 02:14:07 -0700 (PDT) (envelope-from jhay@zibbi.mikom.csir.co.za) Received: (from jhay@localhost) by zibbi.mikom.csir.co.za (8.9.1/8.9.1) id LAA06018; Thu, 17 Sep 1998 11:08:57 +0200 (SAT) From: John Hay Message-Id: <199809170908.LAA06018@zibbi.mikom.csir.co.za> Subject: Re: Death by SIGXCPU (problems with our clock code) In-Reply-To: <8620.906017842@critter.freebsd.dk> from Poul-Henning Kamp at "Sep 17, 98 09:37:22 am" To: phk@critter.freebsd.dk (Poul-Henning Kamp) Date: Thu, 17 Sep 1998 11:08:56 +0200 (SAT) Cc: mike@smith.net.au, current@FreeBSD.ORG, bde@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL32 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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