From owner-freebsd-current Tue Apr 2 05:40:46 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id FAA23064 for current-outgoing; Tue, 2 Apr 1996 05:40:46 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id FAA23055 for ; Tue, 2 Apr 1996 05:40:40 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id XAA23396; Tue, 2 Apr 1996 23:17:57 +1000 Date: Tue, 2 Apr 1996 23:17:57 +1000 From: Bruce Evans Message-Id: <199604021317.XAA23396@godzilla.zeta.org.au> To: bde@zeta.org.au, phk@critter.tfs.com Subject: Re: calcru: negative time: Cc: freebsd-current@freefall.freebsd.org, kuku@gilberto.physik.rwth-aachen.de Sender: owner-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >> actual time event reported time comments >> 0 Xintr0() >> 10 hardclock() >> 9000 splhigh() >> 10000 Xintr0() sets ipending bit for intr0 >> 19000 microtime() 19000 no problem yet >> 20000 Xintr0() oops, missed a whole intr0 >Could we add a check for this under some suitable #ifdef ? Oops, the second Xintr0() shouldn't be there - irq0 is masked until the interrupt is processed. If irq0 is edge triggered than it could be left unmasked so that the second irq0 is detectable, but this isn't the default and edge triggering should die when ISA dies. Thus it is only practical to detect missed clock interrupts if another clock is available. We have enough - the rtc on all systems and the tsc on i586's. I plan to compare the clocks every second or 10. This should be standard to detect drift. >Alternatively, could we make a check in spl*() so that if splhigh has been >active >long< time we will print a warning ? I plan to do this too. This should only be enabled for debugging. My current tests have been detecting lots of problems but haven't been any help for finding where the high latency comes from. The problem should be reported by stopping at a breakpoint in spl0 or in doreti before the cpl has been reduced. Then there will be a chance of seeing what set cpl high for too long. Bruce