Date: Wed, 22 Sep 2004 16:52:57 +0700 From: Pavel Gubin <pg@ie.tusur.ru> To: freebsd-current@freebsd.org Subject: "Multiple entries for PCI IRQ 16" and "xlock already held" panics on 5.3-BETA(3,4,5) Message-ID: <20040922095257.GA81709@ie.tusur.ru>
next in thread | raw e-mail | index | archive | help
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@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@fidonet / Phone +7-3822-423067 / ICQ 28835566
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040922095257.GA81709>