From owner-freebsd-current Thu Sep 17 09:17:12 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA03399 for freebsd-current-outgoing; Thu, 17 Sep 1998 09:17:12 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.15.68.22]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id JAA03370; Thu, 17 Sep 1998 09:17:00 -0700 (PDT) (envelope-from bde@godzilla.zeta.org.au) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.7/8.8.7) id CAA19641; Fri, 18 Sep 1998 02:16:18 +1000 Date: Fri, 18 Sep 1998 02:16:18 +1000 From: Bruce Evans Message-Id: <199809171616.CAA19641@godzilla.zeta.org.au> To: jhay@mikom.csir.co.za, phk@critter.freebsd.dk Subject: Re: Death by SIGXCPU (problems with our clock code) Cc: bde@FreeBSD.ORG, current@FreeBSD.ORG, mike@smith.net.au 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. How big and consistent are the jumps? microtime() was never designed to work when called from a fast interrupt handler. It's interesting that it works worse than before. It's fairly obvious why it doesn't - switching high-level timecounters is atomic, but the i8254 timecounter has internal state that is not switched atomically in clkintr(). This part of the problem should be easy to fix by adding a disable_intr()/enable_intr(). Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message