From owner-freebsd-current@FreeBSD.ORG Thu Apr 19 02:26:41 2007 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 902FD16A401 for ; Thu, 19 Apr 2007 02:26:41 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.freebsd.org (Postfix) with ESMTP id 61ED813C455 for ; Thu, 19 Apr 2007 02:26:41 +0000 (UTC) (envelope-from nate@root.org) Received: (qmail 43760 invoked from network); 19 Apr 2007 02:26:43 -0000 Received: from ppp-71-139-34-102.dsl.snfc21.pacbell.net (HELO ?10.0.0.235?) (nate-mail@71.139.34.102) by root.org with ESMTPA; 19 Apr 2007 02:26:43 -0000 Message-ID: <4626D35B.7070308@root.org> Date: Wed, 18 Apr 2007 19:26:35 -0700 From: Nate Lawson User-Agent: Thunderbird 1.5.0.7 (X11/20061027) MIME-Version: 1.0 To: "Wilkinson, Alex" X-Enigmail-Version: 0.94.1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: current Subject: Re: IRQ Question? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Apr 2007 02:26:41 -0000 > FreeBSD 7.0-CURRENT #0: Tue Apr 10 13:47:53 WST 2007 > > Could be an insanely dumb question, however, I have to ask. > > Why don't IRQs in the BIOS map to IRQs in the output of vmstat(8) ? > > e.g. > > I manually changed an IRQ assingment of an Intel NIC [em(4)] to be on IRQ 11 in > the BIOS and vmstat(8) reports its as irq16. > > #vmstat -i | egrep -i em > irq16: em0 uhci0 2990236 18 > > Can someone (njl@ jhb@) please enlighten me ? Interrupt routing is determined by a number of factors. Without acpi, it's determined by the BIOS initial irq and then anything the $PIR table changes (usually matches the BIOS value). With acpi, it's the BIOS irq and MADT acpi table. And that assumes APIC, not PIC-based routing. You can override the values with these tunables from the acpi man page: hw.pci.link.%s.%d.irq Override the interrupt to use for this link and index. This capability should be used carefully, and only if a device is not working with acpi enabled. "%s" is the name of the link (e.g., LNKA). "%d" is the resource index when the link supports multi- ple IRQs. Most PCI links only have one IRQ resource, so the below form should be used. hw.pci.link.%s.irq Override the interrupt to use. This capability should be used carefully, and only if a device is not working with acpi enabled. "%s" is the name of the link (e.g., LNKA). You'll have to look at your dmesg to determine the proper values here. -- Nate