From owner-freebsd-current@FreeBSD.ORG Thu Sep 23 16:53:09 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7FF2316A4CE for ; Thu, 23 Sep 2004 16:53:09 +0000 (GMT) Received: from mail5.speakeasy.net (mail5.speakeasy.net [216.254.0.205]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4E6DF43D1F for ; Thu, 23 Sep 2004 16:53:09 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: (qmail 11481 invoked from network); 23 Sep 2004 16:53:08 -0000 Received: from dsl027-160-063.atl1.dsl.speakeasy.net (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender ) encrypted SMTP for ; 23 Sep 2004 16:53:08 -0000 Received: from [10.50.40.210] (gw1.twc.weather.com [216.133.140.1]) (authenticated bits=0) by server.baldwin.cx (8.12.11/8.12.11) with ESMTP id i8NGr4pS010179; Thu, 23 Sep 2004 12:53:04 -0400 (EDT) (envelope-from jhb@FreeBSD.org) From: John Baldwin To: freebsd-current@FreeBSD.org Date: Thu, 23 Sep 2004 11:32:45 -0400 User-Agent: KMail/1.6.2 References: <20040922095257.GA81709@ie.tusur.ru> <20040923042447.GA88335@ie.tusur.ru> <200409231029.47945.jhb@FreeBSD.org> In-Reply-To: <200409231029.47945.jhb@FreeBSD.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200409231132.45061.jhb@FreeBSD.org> X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on server.baldwin.cx cc: Pavel Gubin Subject: Re: "Multiple entries for PCI IRQ 16" and "xlock already held" panics on 5.3-BETA(3,4,5) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 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, 23 Sep 2004 16:53:09 -0000 On Thursday 23 September 2004 10:29 am, John Baldwin wrote: > On Thursday 23 September 2004 12:24 am, Pavel Gubin wrote: > > On Wed, Sep 22, 2004 at 04:28:51PM -0400, John Baldwin wrote: > > > > 1) When MPS 1.4 is enabled with the BIOS setting and ACPI disabled > > > > either by BIOS or by unsetting `acpi_load' loader variable, the > > > > kernel panices immediately with "panic: Multiple entries for PCI IRQ > > > > 16" message. As one can see from #1 Bootlog, there are really two > > > > entries for IRQ16. I think this is the BIOS bug, but I also think the > > > > diagnostics for this situation should be more precise than that. > > > > > > There's not much more precise that can be done. mptable output would > > > be extremely helpful here. > > > > ========================================================================= > >== ==== > > > > MPTable, version 2.0.15 > > > > ------------------------------------------------------------------------- > >-- ---- > > > > MP Floating Pointer Structure: > > > > location: BIOS > > physical address: 0x000fb960 > > signature: '_MP_' > > length: 16 bytes > > version: 1.4 > > checksum: 0x7f > > mode: Virtual Wire > > > > ------------------------------------------------------------------------- > >-- ---- > > > > MP Config Table Header: > > > > physical address: 0x000f62b0 > > signature: 'PCMP' > > base table length: 256 > > version: 1.4 > > checksum: 0xcb > > OEM ID: 'SiS ' > > Product ID: '740 ' > > OEM table pointer: 0x00000000 > > OEM table size: 0 > > entry count: 25 > > local APIC address: 0xfee00000 > > extended table length: 0 > > extended table checksum: 0 > > > > ------------------------------------------------------------------------- > >-- ---- > > > > MP Config Base Table Entries: > > > > -- > > I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# > > INT active-lo level 0 2:A 2 16 > > INT active-lo level 0 2:A 2 23 > > This is the real bug and I guess I can improve the message. Then problem > is not two lines for IRQ 16, but that the PCI interrrupt for bus 0, device > 2, pin #A has two different IRQs listed, so we don't know which one we are > supposed to use. This is definitely a BIOS bug and your motherboard > manufacturer needs to harassed into giving you a BIOS update. Also, I have a patch to make the error message more useful if you want to try it: --- //depot/vendor/freebsd/src/sys/i386/i386/mptable.c 2004/07/01 07:50:36 +++ //depot/user/jhb/acpipci/i386/i386/mptable.c 2004/09/23 14:34:52 @@ -935,7 +935,9 @@ if (args->vector == vector) return; KASSERT(args->vector == -1, - ("Multiple entries for PCI IRQ %d", args->vector)); + ("Multiple IRQs for PCI interrupt %d.%d.INT%c: %d and %d\n", + args->bus, args->irq >> 2, 'A' + (args->irq & 0x3), args->vector, + vector)); args->vector = vector; } -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org