"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 02:54:20 PDT 2004


Hello,

I'm trying to set up RELENG_5 on a box, and got some panices.

1) Box configuration: MSI MS-6568 (SiS740 + SiS961B), Duron 1100, Realtek
RTL8101 on-board, BIOS v1.2 (04102002, the latest)

2) Panices are reproducible during all last RELENG_5 stages (3,4,5 betas)

3) Kernel config is derived from GENERIC by commenting out unneeded devices
and adding some options:

=== cut here ===
machine		i386
cpu		I686_CPU
ident		Pine

makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols

[...]

options 	KDB			# Enable kernel debugger support.
options 	DDB			# Support DDB.
options 	GDB			# Support remote GDB.
options 	INVARIANTS		# Enable calls of extra sanity checking
options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
options 	WITNESS			# Enable checks to detect deadlocks and cycles
options 	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed
options		BREAK_TO_DEBUGGER
options		KDB_TRACE

options		AUTO_EOI_1
options		INCLUDE_CONFIG_FILE
options		QUOTA
options		IPFIREWALL
options		IPFIREWALL_FORWARD
options		IPFIREWALL_DEFAULT_TO_ACCEPT	#allow everything by default
options		IPDIVERT		#divert sockets
options		BRIDGE
options		DUMMYNET

options 	SMP		# Symmetric MultiProcessor Kernel
device		apic		# I/O APIC
[...]
=== cut here ===

Panices.
--------

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.

2) Disabling MPS or enabling ACPI allows the system to boot and to run some
time, but (depending on the system load) the system panices with "panic:
_sx_xlock (user map): xlock already held @ /.../sys/vm/vm_map.c:2997".

I could dig some additional info from this situation if I be told what to
do.

Logs.
-----

#1 Bootlog
----------
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.3-BETA5 #0: Tue Sep 21 14:50:21 TSD 2004
    pg at lynx.ie.tusur.ru:/var/data/5/obj/var/data/5/src/sys/Pine
WARNING: WITNESS option enabled, expect reduced performance.
Preloaded elf kernel "/boot/kernel/kernel" at 0xc070a000.
Calibrating clock(s) ... i8254 clock: 1193274 Hz
CLK_USE_I8254_CALIBRATION not specified - using default frequency
Timecounter "i8254" frequency 1193182 Hz quality 0
Calibrating TSC clock ... TSC clock: 1100046855 Hz
CPU: AMD Duron(tm) Processor (1100.05-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x671  Stepping = 1
  Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
  AMD Features=0xc0480000<MP,AMIE,DSP,3DNow!>
[...]
avail memory = 121827328 (116 MB)
MP Configuration Table version 1.4 found at 0xc00f62b0
APIC: Using the MPTable enumerator.
SMP: Added CPU 0 (BSP)
MPTable: <SiS      740         >
bios32: Found BIOS32 Service Directory header at 0xc00fdae0
bios32: Entry = 0xfdaf0 (c00fdaf0)  Rev = 0  Len = 1
pcibios: PCI BIOS entry at 0xf0000+0xdb11
pnpbios: Found PnP BIOS data at 0xc00f7520
pnpbios: Entry = f0000:64cb  Rev = 1.0
Other BIOS signatures found:
ioapic0: Assuming intbase of 0
ioapic0: Routing external 8259A's -> intpin 0
ioapic0: intpin 0 -> ExtINT (edge, high)
ioapic0: intpin 1 -> ISA IRQ 1 (edge, high)
ioapic0: intpin 2 -> ISA IRQ 2 (edge, high)
ioapic0: intpin 3 -> ISA IRQ 3 (edge, high)
ioapic0: intpin 4 -> ISA IRQ 4 (edge, high)
ioapic0: intpin 5 -> ISA IRQ 5 (edge, high)
ioapic0: intpin 6 -> ISA IRQ 6 (edge, high)
ioapic0: intpin 7 -> ISA IRQ 7 (edge, high)
ioapic0: intpin 8 -> ISA IRQ 8 (edge, high)
ioapic0: intpin 9 -> ISA IRQ 9 (edge, high)
ioapic0: intpin 10 -> ISA IRQ 10 (edge, high)
ioapic0: intpin 11 -> ISA IRQ 11 (edge, high)
ioapic0: intpin 12 -> ISA IRQ 12 (edge, high)
ioapic0: intpin 13 -> ISA IRQ 13 (edge, high)
ioapic0: intpin 14 -> ISA IRQ 14 (edge, high)
ioapic0: intpin 15 -> ISA IRQ 15 (edge, high)
ioapic0: intpin 16 -> PCI IRQ 16 (level, low)
ioapic0: intpin 17 -> PCI IRQ 17 (level, low)
ioapic0: intpin 18 -> PCI IRQ 18 (level, low)
ioapic0: intpin 19 -> PCI IRQ 19 (level, low)
ioapic0: intpin 20 -> PCI IRQ 20 (level, low)
ioapic0: intpin 21 -> PCI IRQ 21 (level, low)
ioapic0: intpin 22 -> PCI IRQ 22 (level, low)
ioapic0: intpin 23 -> PCI IRQ 23 (level, low)
ioapic0: intpin 1 bus ISA
ioapic0: intpin 1 trigger: edge
ioapic0: intpin 1 polarity: high
ioapic0: intpin 2 bus ISA
ioapic0: Routing IRQ 0 -> intpin 2
ioapic0: intpin 2 trigger: edge
ioapic0: intpin 2 polarity: high
ioapic0: intpin 3 bus ISA
ioapic0: intpin 3 trigger: edge
ioapic0: intpin 3 polarity: high
ioapic0: intpin 4 bus ISA
ioapic0: intpin 4 trigger: edge
ioapic0: intpin 4 polarity: high
ioapic0: intpin 6 bus ISA
ioapic0: intpin 6 trigger: edge
ioapic0: intpin 6 polarity: high
ioapic0: intpin 7 bus ISA
ioapic0: intpin 7 trigger: edge
ioapic0: intpin 7 polarity: high
ioapic0: intpin 8 bus ISA
ioapic0: intpin 8 trigger: edge
ioapic0: intpin 8 polarity: high
ioapic0: intpin 9 bus ISA
ioapic0: intpin 9 trigger: edge
ioapic0: intpin 9 polarity: high
ioapic0: intpin 12 bus ISA
ioapic0: intpin 12 trigger: edge
ioapic0: intpin 12 polarity: high
ioapic0: intpin 13 bus ISA
ioapic0: intpin 13 trigger: edge
ioapic0: intpin 13 polarity: high
ioapic0: intpin 14 bus ISA
ioapic0: intpin 14 trigger: edge
ioapic0: intpin 14 polarity: high
ioapic0: intpin 15 bus ISA
ioapic0: intpin 15 trigger: edge
ioapic0: intpin 15 polarity: high
ioapic0: intpin 16 bus PCI
ioapic0: intpin 16 trigger: level
ioapic0: intpin 16 polarity: low
ioapic0: intpin 16 bus PCI
ioapic0: intpin 16 trigger: level
ioapic0: intpin 16 polarity: low
ioapic0: intpin 18 bus PCI
ioapic0: intpin 18 trigger: level
ioapic0: intpin 18 polarity: low
ioapic0: intpin 20 bus PCI
ioapic0: intpin 20 trigger: level
ioapic0: intpin 20 polarity: low
ioapic0: intpin 23 bus PCI
ioapic0: intpin 23 trigger: level
ioapic0: intpin 23 polarity: low
lapic: Routing ExtINT -> LINT0
lapic: Routing NMI -> LINT1
ioapic0 <Version 1.1> irqs 0-23 on motherboard
cpu0 BSP:
     ID: 0x00000000   VER: 0x00040010 LDR: 0x01000000 DFR: 0x0fffffff
  lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
mem: <memory>
Pentium Pro MTRR support enabled
io: <I/O>
null: <null device, zero device>
random: <entropy source, Software, Yarrow>
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
pci_open(1):	mode 1 addr port (0x0cf8) is 0x00000cf8
pci_open(1a):	mode1res=0x00000cf8 (0x80000000)
pci_cfgcheck:	device 0 [class=060000] [hdr=80] is there (id=07401039)
pcibios: BIOS version 2.10
Found $PIR table, 7 entries at 0xc00f7b40
PCI-Only Interrupts: none
Location  Bus Device Pin  Link  IRQs
embedded    0    1    A   0x41  3 4 5 7 10 11 12 14 15
embedded    0    1    B   0x42  3 4 5 7 10 11 12 14 15
embedded    0    1    C   0x43  3 4 5 7 10 11 12 14 15
embedded    0    1    D   0x44  3 4 5 7 10 11 12 14 15
embedded    0    2    A   0x63  3 4 5 7 10 11 12 14 15
embedded    0    2    B   0x42  3 4 5 7 10 11 12 14 15
embedded    0    2    C   0x61  3 4 5 7 10 11 12 14 15
embedded    0    2    D   0x60  3 4 5 7 10 11 12 14 15
embedded    0    3    A   0x62  3 4 5 7 10 11 12 14 15
slot 1      0    7    A   0x42  3 4 5 7 10 11 12 14 15
slot 1      0    7    B   0x43  3 4 5 7 10 11 12 14 15
slot 1      0    7    C   0x44  3 4 5 7 10 11 12 14 15
slot 1      0    7    D   0x41  3 4 5 7 10 11 12 14 15
slot 2      0    8    A   0x43  3 4 5 7 10 11 12 14 15
slot 2      0    8    B   0x44  3 4 5 7 10 11 12 14 15
slot 2      0    8    C   0x41  3 4 5 7 10 11 12 14 15
slot 2      0    8    D   0x42  3 4 5 7 10 11 12 14 15
slot 3      0    9    A   0x44  3 4 5 7 10 11 12 14 15
slot 3      0    9    B   0x41  3 4 5 7 10 11 12 14 15
slot 3      0    9    C   0x42  3 4 5 7 10 11 12 14 15
slot 3      0    9    D   0x43  3 4 5 7 10 11 12 14 15
embedded    0   10    A   0x43  3 4 5 7 10 11 12 14 15
embedded    0   10    B   0x44  3 4 5 7 10 11 12 14 15
pcib0: <MPTable Host-PCI bridge> pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
pci0: physical bus=0
	map[10]: type 1, range 32, base d0000000, size 25, enabled
found->	vendor=0x1039, dev=0x0740, revid=0x01
	bus=0, slot=0, func=0
	class=06-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0007, statreg=0x2210, cachelnsz=0 (dwords)
	lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x1039, dev=0x0001, revid=0x00
	bus=0, slot=1, func=0
	class=06-04-00, hdrtype=0x01, mfdev=0
	cmdreg=0x0007, statreg=0x0000, cachelnsz=0 (dwords)
	lattimer=0x40 (1920 ns), mingnt=0x08 (2000 ns), maxlat=0x00 (0 ns)
found->	vendor=0x1039, dev=0x0008, revid=0x00
	bus=0, slot=2, func=0
	class=06-01-00, hdrtype=0x00, mfdev=1
	cmdreg=0x000f, statreg=0x0200, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	map[10]: type 1, range 32, base cfffa000, size 12, enabled
pcib0: slot 2 INTD routed to irq 20
found->	vendor=0x1039, dev=0x7001, revid=0x07
	bus=0, slot=2, func=2
	class=0c-03-10, hdrtype=0x00, mfdev=0
	cmdreg=0x0117, statreg=0x0280, cachelnsz=8 (dwords)
	lattimer=0x40 (1920 ns), mingnt=0x00 (0 ns), maxlat=0x50 (20000 ns)
	intpin=d, irq=20
	map[10]: type 1, range 32, base cfffb000, size 12, enabled
panic: Multiple entries for PCI IRQ 16
cpuid = 0
KDB: stack backtrace:
kdb_backtrace(100,c063aa20,c0821b18,16,c0821b18) at kdb_backtrace+0x29
panic(c0603b09,10,c00f6398,c0821b04,c05b2019) at panic+0x114
mptable_pci_route_interrupt_handler(c00f6398,c0821b18,c0821b18,2,c0f22600) at mptable_pci_route_interrupt_handler+0x63
mptable_walk_table(c05b2964,c0821b18) at mptable_walk_table+0x3d
mptable_pci_route_interrupt(c0e8a980,c0f22600,1) at mptable_pci_route_interrupt+0xe9
pci_assign_interrupt_method(c0e8a900,c0f22600) at pci_assign_interrupt_method+0x58
pci_add_resources(c0e8a980,c0e8a900,c0f22600,c0f22600,c0e8a480) at pci_add_resources+0x229
pci_add_child(c0e8a900,c0e8a480) at pci_add_child+0x49
pci_add_children(c0e8a900,0,78,0,c0e8a900) at pci_add_children+0xfa
pci_attach(c0e8a900) at pci_attach+0x79
device_attach(c0e8a900,c0e8aa80,c0e8a900,c0e8a980,c0e8a980) at device_attach+0x58
device_probe_and_attach(c0e8a900) at device_probe_and_attach+0xb4
bus_generic_attach(c0e8a980,c0e8a980,c0600e0b,0,0) at bus_generic_attach+0x16
mptable_hostb_attach(c0e8a980) at mptable_hostb_attach+0x69
device_attach(c0e8a980,c0633560,c0e8a980,c0e8aa80,0) at device_attach+0x58
device_probe_and_attach(c0e8a980) at device_probe_and_attach+0xb4
bus_generic_attach(c0e8aa80,c0e8aa80,c060c944,c0e8aa80,c0e8aa80) at bus_generic_attach+0x16
legacy_attach(c0e8aa80) at legacy_attach+0x19
device_attach(c0e8aa80,0,c0e8aa80,c0e8ab00,0) at device_attach+0x58
device_probe_and_attach(c0e8aa80) at device_probe_and_attach+0xb4
bus_generic_attach(c0e8ab00,c0e8ab00,c0e8ab00,c0821d44,c04bb388) at bus_generic_attach+0x16
nexus_attach(c0e8ab00) at nexus_attach+0x13
device_attach(c0e8ab00,c0628110,c0e8ab00,c0628110,829000) at device_attach+0x58
device_probe_and_attach(c0e8ab00) at device_probe_and_attach+0xb4
root_bus_configure(c0ecc100,c0603c17,0) at root_bus_configure+0x16
configure(0,81ec00,81e000,0,c04296a5) at configure+0x1b
mi_startup() at mi_startup+0x96
begin() at begin+0x2c
KDB: enter: panic
[thread 0]
Stopped at      kdb_enter+0x2b: nop
db>

#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
vm_map_pmap_enter(c0e98384,2894f000,5,c1327084,0,0,800000,10) at vm_map_pmap_enter+0x1e6
vm_map_insert(c0e98384,c1327084,0,0,2894f000) at vm_map_insert+0x28c
vm_map_find(c0e98384,c1327084,0,0,c9f49cd8) at vm_map_find+0x86
vm_mmap(c0e98384,c9f49cd8,800000,1,5) at vm_mmap+0x22c
mmap(c0f794e0,c9f49d14,8,a,202) at mmap+0x316
syscall(2f,2f,2f,0,0) at syscall+0x213
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (198, FreeBSD ELF32, nosys), eip = 0x280c17e3, esp = 0xbfbfebac, ebp = 0xbfbfebe8 ---
KDB: enter: panic
[thread 100066]
Stopped at      kdb_enter+0x2b: nop
db>


-- 
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