From owner-freebsd-current Mon Feb 25 1:59:22 2002 Delivered-To: freebsd-current@freebsd.org Received: from critter.freebsd.dk (critter.freebsd.dk [212.242.86.163]) by hub.freebsd.org (Postfix) with ESMTP id EBD6B37B402 for ; Mon, 25 Feb 2002 01:59:18 -0800 (PST) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.12.2/8.12.2) with ESMTP id g1P9xGdN008859 for ; Mon, 25 Feb 2002 10:59:16 +0100 (CET) (envelope-from phk@critter.freebsd.dk) To: current@freebsd.org Subject: ACPI timecounter help needed! In-Reply-To: Your message of "Mon, 25 Feb 2002 01:51:18 PST." <200202250951.g1P9pIS67883@freefall.freebsd.org> Date: Mon, 25 Feb 2002 10:59:16 +0100 Message-ID: <8858.1014631156@critter.freebsd.dk> From: Poul-Henning Kamp Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Machines with ACPI timecounters will now print 10 lines at boot when the timer is tested. If you are lucky you will see ten times something like: ACPI timer looks GOOD min = 3, max = 3, width = 1 That means that you have well implemented ACPI timer. If you are unlucky, one, several or all 10 lines will be marked as "BAD". Please send me an email with these 10 lines and the output of "pciconf -l -v" for your machine. I'm am interested in reports both from good and bad machines. If your machine starts to mysteriously hang after this commit, try to increase the 15 to 31 in this line: } while (u1 > u2 || u2 > u3 || (u3 - u1) > 15); Hopefully this commit fixes the "timecounter backwards" problem with broken ACPI timers, if not, let me know. Enjoy, Poul-Henning In message <200202250951.g1P9pIS67883@freefall.freebsd.org>, Poul-Henning Kamp writes: >phk 2002/02/25 01:51:18 PST > > Modified files: > sys/dev/acpica acpi_timer.c > Log: > Add a new test_counter() function which tries to determine the width of > the inter-value histogram for 2000 samples. If the width is 3 or less > for 10 consequtive samples, we trust the counter to be good, otherwise > we use the *_safe() method. > > This method may be too strict, but the worst which can happen is that > we take the performance hit of the *_safe() method when we should not. > > Make the *_safe() method more discriminating by mandating that the three > samples do not span more than 15 ticks on the counter. > > Disable the PCI-ident based probing as a means to recognize good > counters. > > Inspiration from: dillon and msmith > > Revision Changes Path > 1.14 +46 -17 src/sys/dev/acpica/acpi_timer.c > -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | 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-current" in the body of the message