From owner-freebsd-hackers Mon Sep 4 9:41:24 2000 Delivered-To: freebsd-hackers@freebsd.org Received: from critter.freebsd.dk (flutter.freebsd.dk [212.242.40.147]) by hub.freebsd.org (Postfix) with ESMTP id 5EF2937B42C; Mon, 4 Sep 2000 09:41:16 -0700 (PDT) Received: from critter (localhost [127.0.0.1]) by critter.freebsd.dk (8.11.0/8.9.3) with ESMTP id e84GfEN53061; Mon, 4 Sep 2000 18:41:14 +0200 (CEST) (envelope-from phk@critter.freebsd.dk) To: current@freebsd.org, hackers@freebsd.org Subject: looking for "microuptime went backwards" victims... From: Poul-Henning Kamp Date: Mon, 04 Sep 2000 18:41:14 +0200 Message-ID: <53059.968085674@critter> Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I'm looking for the remaining victims of the dreaded "microuptime went backwards" message. If you can reliably reproduce the problem, please contact me, so we can arrange for some very detailed tracing to try to find out what exactly is going on. I have not been able to trigger the problem in my lab in a long time. If you see the message only occationally, please try the attached patch and let me know if this changes the picture. The patch is not meant as a fix, but it might reduce the impact of this condition considerably when it happens. Basically by reducing the width of the timecounter the magnitude of the hit we take if the timecounter goes backwards is reduced from about an hour to approx 110msec. Reducing the width to less than 17 bits starts to run the risk of ambiguity due to clock rollover. This patch may not be safe with PCAUDIO. Poul-Henning Index: clock.c =================================================================== RCS file: /home/ncvs/src/sys/i386/isa/clock.c,v retrieving revision 1.155 diff -u -r1.155 clock.c --- clock.c 2000/07/30 21:05:22 1.155 +++ clock.c 2000/09/04 16:34:16 @@ -194,7 +194,7 @@ static struct timecounter i8254_timecounter = { i8254_get_timecount, /* get_timecount */ 0, /* no poll_pps */ - ~0u, /* counter_mask */ + 0x1ffff, /* counter_mask */ 0, /* frequency */ "i8254" /* name */ }; -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD coreteam member | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message