From owner-cvs-src@FreeBSD.ORG Sat Aug 7 05:37:18 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4250616A4CE; Sat, 7 Aug 2004 05:37:18 +0000 (GMT) Received: from harmony.village.org (rover.village.org [168.103.84.182]) by mx1.FreeBSD.org (Postfix) with ESMTP id C120743D1F; Sat, 7 Aug 2004 05:37:17 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.11/8.12.11) with ESMTP id i775YnB4029919; Fri, 6 Aug 2004 23:34:49 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Fri, 06 Aug 2004 23:35:28 -0600 (MDT) Message-Id: <20040806.233528.74404627.imp@bsdimp.com> To: nate@root.org From: "M. Warner Losh" In-Reply-To: <4114681D.5020902@root.org> References: <200408060450.i764ouJu097994@repoman.freebsd.org> <200408061014.22594.jhb@FreeBSD.org> <4114681D.5020902@root.org> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: cvs-src@FreeBSD.org cc: njl@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org cc: jhb@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/acpica acpi_pci_link.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Aug 2004 05:37:18 -0000 In message: <4114681D.5020902@root.org> Nate Lawson writes: : John Baldwin wrote: : > On Friday 06 August 2004 12:50 am, Nate Lawson wrote: : > : >>njl 2004-08-06 04:50:56 UTC : >> : >> FreeBSD src repository : >> : >> Modified files: : >> sys/dev/acpica acpi_pci_link.c : >> Log: : >> Refine updates to PCI irq routing. Check _STA and _CRS but only print a : >> message if they are incorrect. Also, remove the hack of allowing the : >> initial irq setting to not be in _PRS. As before, the old behavior can : >>be regained by defining ACPI_OLD_PCI_LINK. : > : > : > Note that I had to back out this removal of the initial IRQ hack because it : > broke things for many people. The problem is that the current link code : > doesn't do a good job of picking virgin IRQs. : > : : I plan to take this to the logical conclusion. I agree you were on the : right track but didn't go far enough. :) I'll send patches in a few days. I know that Linux uses (used) a system where it would assign weights to the interrupts. It then would route to the least weighted interrupt possible, and then add some factor to its weight so that it was less likely to be picked for the next interrupt. Don't know how well that scales, esp for SMP boxes with ioapic. The initial weights, however, heavily biased against the interrupts used by the standard set of PC-AT devices: 3 (sio), 4 (sio), 6 (fdc), 7 (ppc), 12 (psm) and ata (14, 15). There was also a mask of invalid IRQs. This degrated to a round robin assignment of interrupts that weren't heavily weighted against. This is generically fair, but might not be optimal for a given system (since it might round robin the two biggest interrupt sources together)... Warner