"Multiple entries for PCI IRQ 16" and "xlock already held"
panics on 5.3-BETA(3,4,5)
Pavel Gubin
pg at ie.tusur.ru
Wed Sep 22 21:26:24 PDT 2004
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:
--
Processors: APIC ID Version State Family Model Step Flags
0 0x14 BSP, usable 6 7 1 0x0055
--
Bus: Bus ID Type
0 PCI
1 PCI
2 ISA
--
I/O APICs: APIC ID Version State Address
2 0x11 usable 0xfec00000
--
I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#
ExtINT conforms conforms 2 0 2 0
INT conforms conforms 2 1 2 1
INT conforms conforms 2 0 2 2
INT conforms conforms 2 3 2 3
INT conforms conforms 2 4 2 4
INT conforms conforms 2 6 2 6
INT conforms conforms 2 7 2 7
INT active-hi edge 2 8 2 8
INT conforms conforms 2 9 2 9
INT conforms conforms 2 12 2 12
INT conforms conforms 2 13 2 13
INT conforms conforms 2 14 2 14
INT conforms conforms 2 15 2 15
INT active-lo level 0 2:A 2 16
INT active-lo level 1 0:A 2 16
INT active-lo level 0 10:A 2 18
INT active-lo level 0 2:D 2 20
INT active-lo level 0 2:A 2 23
--
Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#
ExtINT conforms conforms 0 0:A 255 0
NMI conforms conforms 0 0:A 255 1
===============================================================================
> > #2 Panic log
> > ------------
> > panic: _sx_xlock (user map): xlock already held @
> > /var/data/5/src/sys/vm/vm_map.c:2997 cpuid = 0
> > KDB: stack backtrace:
> > kdb_backtrace(100,c0f794e0,c0e983c8,1,bb5) at kdb_backtrace+0x29
> > panic(c05eaffa,c05d320c,c05fd313,c05fd393,bb5) at panic+0x114
> > _sx_xlock(c0e983c8,c05fd393,bb5) at _sx_xlock+0x44
> > _vm_map_lock_read(c0e98384,c05fd393,bb5,1f49a0c,c113692c) at
> > _vm_map_lock_read+0x37 vm_map_lookup(c9f49a64,bfca2000,1,c9f49a68,c9f49a58)
> > at vm_map_lookup+0x28 vm_fault(c0e98384,bfca2000,1,0,c0f794e0) at
> > vm_fault+0x66
> > trap_pfault(c9f49b2c,0,bfca253c) at trap_pfault+0xd2
> > trap(18,10,10,c0e98444,c0c95c48) at trap+0x30d
> > calltrap() at calltrap+0x5
> > --- trap 0xc, eip = 0xc05b541c, esp = 0xc9f49b6c, ebp = 0xc9f49b78 ---
> > pmap_enter_quick(c0e98444,2894f000,c0d7c2e8,0,0) at pmap_enter_quick+0xc8
>
> This is the real bug, can you do 'l *0xc05b541c' from kgdb?
(kgdb) l *0xc05b541c
0xc05b541c is in pmap_enter_quick
(/var/data/5/src/sys/i386/i386/pmap.c:2130).
2125 * entering the page into the current pmap. In order to
support
2126 * quick entry into any pmap, one would likely use
pmap_pte_quick.
2127 * But that isn't as quick as vtopte.
2128 */
2129 pte = vtopte(va);
2130 if (*pte) {
2131 if (mpte != NULL) {
2132 pmap_unwire_pte_hold(pmap, mpte);
2133 mpte = NULL;
2134 }
--
Pavel Gubin
TUSC&R / Industrial Electronics dept / System Administrator
2:5005/14 at fidonet / Phone +7-3822-423067 / ICQ 28835566
More information about the freebsd-current
mailing list