Date: Sat, 31 Aug 2002 14:15:24 +0200 From: Poul-Henning Kamp <phk@critter.freebsd.dk> To: Bruce Evans <bde@zeta.org.au> Cc: hardware@FreeBSD.ORG Subject: Re: PCI latency timer vs interrupt latency and ISA bus latency Message-ID: <40659.1030796124@critter.freebsd.dk> In-Reply-To: Your message of "Sat, 31 Aug 2002 22:03:18 %2B1000." <20020831215409.C5111-100000@gamplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <20020831215409.C5111-100000@gamplex.bde.org>, Bruce Evans writes: >On Sat, 31 Aug 2002, Poul-Henning Kamp wrote: > >> In message <20020831160511.O3960-100000@gamplex.bde.org>, Bruce Evans writes: >> >> >Debugging of interrupt latency caused by critical_enter() showed that >> >DELAY(2) sometimes delayed for 170 or more usec for an Athlon1600 CPU >> >> DELAY(2) should not use i8254 when better alternatives exist. We may >> not want to deal with the TSC calibration issue, but both the ACPI timer >> and the APIC timer in the CPU would be good candidates. > >This is not the point here. DELAY() is just the messenger. What is >important is that bus accesses may be slowed down by a factor of 60 or >more for at least 3 accesses in succession, and that a using a simple >spinlock to provide exclusive access to the device and semi-exclusive >access to the CPU works surprisingly badly -- it prevents the CPU from >doing anything useful for 60 times longer than expected. I agree that we have a point in PCI latencies and stuff, an I know that NetBSD has some code to fix up stuff if it's wrong. But I think it is an equally valid point that DELAY() is in dire need for a brain-lobotomy. -- 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-hardware" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40659.1030796124>