From owner-cvs-all Fri May 28 7: 9: 4 1999 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 62D9F14BF1; Fri, 28 May 1999 07:09:01 -0700 (PDT) (envelope-from bde@FreeBSD.org) Received: (from bde@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id HAA31124; Fri, 28 May 1999 07:09:01 -0700 (PDT) (envelope-from bde@FreeBSD.org) Message-Id: <199905281409.HAA31124@freefall.freebsd.org> From: Bruce Evans Date: Fri, 28 May 1999 07:09:01 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/i386/isa apic_vector.s clock.c icu_vector.s Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk bde 1999/05/28 07:09:01 PDT Modified files: sys/i386/isa apic_vector.s clock.c icu_vector.s Log: Fixed glitches (jumps) of about 1/HZ seconds for the i8254 timecounter. The old version only worked right when the time was read strictly more often than every 1/HZ seconds, but we only guarantee reading it every (1/HZ + epsilon) seconds. Part of rev.1.126-1.127 attempted to fix this but didn't succeed. Detect counter rollover using the heuristic from the old version of microtime() with additional complications for supporting calls from fast interrupt handlers. This works provided i8254 interrupts are not delayed by more than 1/(2*HZ) seconds. This needs more comments, and cleanups for the SMP case, and more testing of the SMP case before it is merged into RELENG_3. Tested by: jhay Revision Changes Path 1.38 +32 -27 src/sys/i386/isa/apic_vector.s 1.134 +21 -20 src/sys/i386/isa/clock.c 1.12 +20 -18 src/sys/i386/isa/icu_vector.s To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message