From owner-freebsd-current@FreeBSD.ORG Tue Nov 4 05:16:41 2003 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 E129C16A4D3; Tue, 4 Nov 2003 05:16:39 -0800 (PST) Received: from mailhub.fokus.fraunhofer.de (mailhub.fokus.fraunhofer.de [193.174.154.14]) by mx1.FreeBSD.org (Postfix) with ESMTP id CA30543FE1; Tue, 4 Nov 2003 05:16:37 -0800 (PST) (envelope-from brandt@fokus.fraunhofer.de) Received: from beagle (beagle [193.175.132.100])hA4DGZ004636; Tue, 4 Nov 2003 14:16:35 +0100 (MET) Date: Tue, 4 Nov 2003 14:16:35 +0100 (CET) From: Harti Brandt To: jhb@freebsd.org Message-ID: <20031104122624.J72398@beagle.fokus.fraunhofer.de> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: <20031104140345.V72398@beagle.fokus.fraunhofer.de> cc: current@freebsd.org Subject: New interrupt stuff breaks ASUS 2 CPU system X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: harti@freebsd.org List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Nov 2003 13:16:41 -0000 Hi, I have an ASUS system with 2 CPUs that I need to run at HZ=10000. This worked until yesterday, but with the new interrupt code it doesn't boot anymore. It works for the standard HZ, but if I set HZ=1000 I get a double fault. I suspect a race condition in the interrupt handling. My config file has options SMP device apic options HZ=1000 I have commented out acpi, but that doesn't change anything. A verbose boot looks like: OK boot -v SMAP type=01 base=0000000000000000 len=000000000009f800 SMAP type=02 base=000000000009f800 len=0000000000000800 SMAP type=02 base=00000000000f0000 len=0000000000010000 SMAP type=01 base=0000000000100000 len=000000001feec000 SMAP type=03 base=000000001ffec000 len=0000000000003000 SMAP type=02 base=000000001ffef000 len=0000000000010000 SMAP type=04 base=000000001ffff000 len=0000000000001000 SMAP type=02 base=00000000fec00000 len=0000000000001000 SMAP type=02 base=00000000fee00000 len=0000000000001000 SMAP type=02 base=00000000ffff0000 len=0000000000010000 Copyright (c) 1992-2003 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.1-CURRENT #29: Tue Nov 4 13:50:23 CET 2003 hbb@beagle.fokus.fraunhofer.de:/opt/obj/usr/src/sys/MARIPOSA Preloaded elf kernel "/boot/kernel/kernel" at 0xc069b000. Preloaded elf module "/boot/kernel/random.ko" at 0xc069b278. Calibrating clock(s) ... i8254 clock: 1193132 Hz CLK_USE_I8254_CALIBRATION not specified - using default frequency Timecounter "i8254" frequency 1193182 Hz quality 0 Calibrating TSC clock ... TSC clock: 1380009492 Hz CPU: AMD Athlon(TM) MP 1800+ (1380.01-MHz 686-class CPU) Origin = "AuthenticAMD" Id = 0x662 Stepping = 2 Features=0x383fbff AMD Features=0xc0480000 Data TLB: 32 entries, fully associative Instruction TLB: 16 entries, fully associative L1 data cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative L1 instruction cache: 64 kbytes, 64 bytes/line, 1 lines/tag, 2-way associative L2 internal cache: 256 kbytes, 64 bytes/line, 1 lines/tag, 8-way associative real memory = 536788992 (511 MB) Physical memory chunk(s): 0x0000000000001000 - 0x000000000009efff, 647168 bytes (158 pages) 0x0000000000100000 - 0x00000000003fffff, 3145728 bytes (768 pages) 0x0000000000829000 - 0x000000001f6c5fff, 518639616 bytes (126621 pages) avail memory = 516005888 (492 MB) MPTable: APIC ID: physical 0, logical 0:0 APIC ID: physical 1, logical 0:1 FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 bios32: Found BIOS32 Service Directory header at 0xc00f2560 bios32: Entry = 0xf1d20 (c00f1d20) Rev = 0 Len = 1 pcibios: PCI BIOS entry at 0xf0000+0x1f20 pnpbios: Found PnP BIOS data at 0xc00fc5e0 pnpbios: Entry = f0000:c610 Rev = 1.0 pnpbios: OEM ID cd041 Other BIOS signatures found: ioapic0: Assuming intbase of 0 ioapic0: intpin 0 -> ExtINT ioapic0: intpin 1 -> irq 1 ioapic0: intpin 2 -> irq 2 ioapic0: intpin 3 -> irq 3 ioapic0: intpin 4 -> irq 4 ioapic0: intpin 5 -> irq 5 ioapic0: intpin 6 -> irq 6 ioapic0: intpin 7 -> irq 7 ioapic0: intpin 8 -> irq 8 ioapic0: intpin 9 -> irq 9 ioapic0: intpin 10 -> irq 10 ioapic0: intpin 11 -> irq 11 ioapic0: intpin 12 -> irq 12 ioapic0: intpin 13 -> irq 13 ioapic0: intpin 14 -> irq 14 ioapic0: intpin 15 -> irq 15 ioapic0: intpin 16 -> irq 16 ioapic0: intpin 17 -> irq 17 ioapic0: intpin 18 -> irq 18 ioapic0: intpin 19 -> irq 19 ioapic0: intpin 20 -> irq 20 ioapic0: intpin 21 -> irq 21 ioapic0: intpin 22 -> irq 22 ioapic0: intpin 23 -> irq 23 ioapic0: intpin 16 trigger: level ioapic0: intpin 16 polarity: active-lo ioapic0: intpin 16 trigger: level ioapic0: intpin 16 polarity: active-lo ioapic0: intpin 19 trigger: level ioapic0: intpin 19 polarity: active-lo ioapic0: intpin 18 trigger: level ioapic0: intpin 18 polarity: active-lo ioapic0: intpin 17 trigger: level ioapic0: intpin 17 polarity: active-lo ioapic0: intpin 19 trigger: level ioapic0: intpin 19 polarity: active-lo ioapic0: intpin 1 trigger: edge ioapic0: intpin 1 polarity: active-hi ioapic0: Routing IRQ 0 -> intpin 2 ioapic0: intpin 2 trigger: edge ioapic0: intpin 2 polarity: active-hi ioapic0: intpin 4 trigger: edge ioapic0: intpin 4 polarity: active-hi ioapic0: intpin 5 trigger: edge ioapic0: intpin 5 polarity: active-hi ioapic0: intpin 6 trigger: edge ioapic0: intpin 6 polarity: active-hi ioapic0: intpin 7 trigger: edge ioapic0: intpin 7 polarity: active-hi ioapic0: intpin 8 trigger: edge ioapic0: intpin 8 polarity: active-hi ioapic0: intpin 9 trigger: edge ioapic0: intpin 9 polarity: active-hi ioapic0: intpin 13 trigger: edge ioapic0: intpin 13 polarity: active-hi ioapic0: intpin 14 trigger: edge ioapic0: intpin 14 polarity: active-hi ioapic0: intpin 15 trigger: edge ioapic0: intpin 15 polarity: active-hi lapic: Routing ExtINT -> LINT0 lapic: LINT0 trigger: edge lapic: LINT0 polarity: active-hi lapic: Routing NMI -> LINT1 lapic: LINT1 trigger: edge lapic: LINT1 polarity: active-hi ioapic0 irqs 0-23 on motherboard cpu0 BSP: ID: 0x00000000 VER: 0x00040010 LDR: 0x01000000 DFR: 0x0fffffff lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff mem: Pentium Pro MTRR support enabled null: random: npx0: [FAST] stray irq13 npx0: on motherboard npx0: INT 16 interface pci_open(1): mode 1 addr port (0x0cf8) is 0x80012848 pci_open(1a): mode1res=0x80000000 (0x80000000) pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=700c1022) pcibios: BIOS version 2.10 Using $PIR table, 9 entries at 0xc00f24a0 PCI-Only Interrupts: none Location Bus Device Pin Link IRQs embedded 0 7 B 0x01 3 4 5 7 9 10 11 12 embedded 0 7 C 0x02 3 4 5 7 9 10 11 12 embedded 0 7 D 0x03 3 4 5 7 9 10 11 12 slot 1 0 8 B 0x01 3 4 5 7 9 10 11 12 slot 1 0 8 C 0x02 3 4 5 7 9 10 11 12 slot 1 0 8 D 0x03 3 4 5 7 9 10 11 12 slot 2 0 9 A 0x01 3 4 5 7 9 10 11 12 slot 2 0 9 B 0x02 3 4 5 7 9 10 11 12 slot 2 0 9 C 0x03 3 4 5 7 9 10 11 12 slot 3 2 6 A 0x01 3 4 5 7 9 10 11 12 slot 3 2 6 B 0x02 3 4 5 7 9 10 11 12 slot 3 2 6 C 0x03 3 4 5 7 9 10 11 12 slot 4 2 5 A 0x02 3 4 5 7 9 10 11 12 slot 4 2 5 B 0x03 3 4 5 7 9 10 11 12 slot 4 2 5 D 0x01 3 4 5 7 9 10 11 12 slot 5 2 8 A 0x03 3 4 5 7 9 10 11 12 slot 5 2 8 C 0x01 3 4 5 7 9 10 11 12 slot 5 2 8 D 0x02 3 4 5 7 9 10 11 12 embedded 1 5 B 0x01 3 4 5 7 9 10 11 12 embedded 1 5 C 0x02 3 4 5 7 9 10 11 12 embedded 1 5 D 0x03 3 4 5 7 9 10 11 12 embedded 2 4 A 0x01 3 4 5 7 9 10 11 12 embedded 2 4 B 0x02 3 4 5 7 9 10 11 12 embedded 2 4 C 0x03 3 4 5 7 9 10 11 12 embedded 2 0 B 0x01 3 4 5 7 9 10 11 12 embedded 2 0 C 0x02 3 4 5 7 9 10 11 12 embedded 2 0 D 0x03 3 4 5 7 9 10 11 12 pcib0: at pcibus 0 on motherboard pci0: on pcib0 pci0: physical bus=0 map[10]: type 3, range 32, base fc000000, size 25, enabled map[14]: type 3, range 32, base fb800000, size 12, enabled map[18]: type 4, range 32, base 0000e800, size 2, port disabled found-> vendor=0x1022, dev=0x700c, revid=0x11 bus=0, slot=0, func=0 class=06-00-00, hdrtype=0x00, mfdev=0 cmdreg=0x0006, statreg=0x2230, cachelnsz=0 (dwords) lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) found-> vendor=0x1022, dev=0x700d, revid=0x00 bus=0, slot=1, func=0 class=06-04-00, hdrtype=0x01, mfdev=0 cmdreg=0x0007, statreg=0x0220, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x08 (2000 ns), maxlat=0x00 (0 ns) found-> vendor=0x1022, dev=0x7440, revid=0x04 bus=0, slot=7, func=0 class=06-01-00, hdrtype=0x00, mfdev=1 cmdreg=0x000f, statreg=0x0220, cachelnsz=0 (dwords) lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) map[20]: type 4, range 32, base 0000d800, size 4, enabled found-> vendor=0x1022, dev=0x7441, revid=0x04 bus=0, slot=7, func=1 class=01-01-8a, hdrtype=0x00, mfdev=0 cmdreg=0x0005, statreg=0x0200, cachelnsz=0 (dwords) lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) found-> vendor=0x1022, dev=0x7443, revid=0x03 bus=0, slot=7, func=3 class=06-80-00, hdrtype=0x00, mfdev=0 cmdreg=0x0000, statreg=0x0280, cachelnsz=0 (dwords) lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns) map[10]: type 1, range 32, base f8000000, size 20, enabled pcib0: slot 8 INTA routed to irq 16 found-> vendor=0x1127, dev=0x0400, revid=0x00 bus=0, slot=8, func=0 class=02-03-00, hdrtype=0x00, mfdev=0 cmdreg=0x0016, statreg=0x0220, cachelnsz=8 (dwords) lattimer=0x20 (960 ns), mingnt=0x10 (4000 ns), maxlat=0x01 (250 ns) intpin=a, irq=16 found-> vendor=0x1022, dev=0x7448, revid=0x04 bus=0, slot=16, func=0 class=06-04-00, hdrtype=0x01, mfdev=0 cmdreg=0x0017, statreg=0x2220, cachelnsz=0 (dwords) lattimer=0x20 (960 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns) pcib1: at device 1.0 on pci0 pcib1: secondary bus 1 pcib1: subordinate bus 1 pcib1: I/O decode 0xe000-0xdfff pcib1: memory decode 0xf8800000-0xf9bfffff pcib1: prefetched decode 0xf9f00000-0xfb7fffff pci1: on pcib1 pci1: physical bus=1 map[10]: type 3, range 32, base fa000000, size 24, enabled map[14]: type 1, range 32, base f9000000, size 14, enabled map[18]: type 1, range 32, base f8800000, size 23, enabled pcib1: slot 5 INTA routed to irq 16 found-> vendor=0x102b, dev=0x0521, revid=0x01 bus=1, slot=5, func=0 class=03-00-00, hdrtype=0x00, mfdev=0 cmdreg=0x0007, statreg=0x0290, cachelnsz=8 (dwords) lattimer=0x40 (1920 ns), mingnt=0x10 (4000 ns), maxlat=0x20 (8000 ns) intpin=a, irq=16 powerspec 1 supports D0 D3 current D0 pci1: at device 5.0 (no driver attached) isab0: at device 7.0 on pci0 isa0: on isab0 atapci0: port 0xd800-0xd80f at device 7.1 on pci0 ata0: reset tp1 mask=03 ostat0=50 ostat1=00 ata0-master: stat=0x50 err=0x01 lsb=0x00 msb=0x00 ata0-slave: stat=0x00 err=0x01 lsb=0x00 msb=0x00 ata0: reset tp2 mask=03 stat0=50 stat1=00 devices=0x1 ata0: at 0x1f0 irq 14 on atapci0 ata0: [MPSAFE] ata1: reset tp1 mask=03 ostat0=50 ostat1=00 ata1-master: stat=0x00 err=0x01 lsb=0x14 msb=0xeb ata1-slave: stat=0x00 err=0x04 lsb=0x7f msb=0x7f ata1: reset tp2 mask=03 stat0=00 stat1=00 devices=0x4 ata1: at 0x170 irq 15 on atapci0 ata1: [MPSAFE] pci0: at device 7.3 (no driver attached) pci0: at device 8.0 (no driver attached) pcib2: at device 16.0 on pci0 pcib2: secondary bus 2 pcib2: subordinate bus 2 pcib2: I/O decode 0xc000-0xcfff pcib2: memory decode 0xf6000000-0xf7ffffff pcib2: prefetched decode 0xf9c00000-0xf9dfffff pci2: on pcib2 pci2: physical bus=2 map[10]: type 4, range 32, base 0000c800, size 7, enabled map[14]: type 1, range 32, base f7000000, size 7, enabled pcib2: slot 5 INTA routed to irq 18 found-> vendor=0x10b7, dev=0x9200, revid=0x74 bus=2, slot=5, func=0 class=02-00-00, hdrtype=0x00, mfdev=0 cmdreg=0x0017, statreg=0x0210, cachelnsz=8 (dwords) lattimer=0x20 (960 ns), mingnt=0x0a (2500 ns), maxlat=0x0a (2500 ns) intpin=a, irq=18 powerspec 2 supports D0 D1 D2 D3 current D0 map[10]: type 1, range 32, base f6800000, size 20, enabled pcib2: slot 6 INTA routed to irq 17 found-> vendor=0x1127, dev=0x0400, revid=0x01 bus=2, slot=6, func=0 class=02-03-00, hdrtype=0x00, mfdev=0 cmdreg=0x0016, statreg=0x0220, cachelnsz=8 (dwords) lattimer=0x20 (960 ns), mingnt=0x10 (4000 ns), maxlat=0x01 (250 ns) intpin=a, irq=17 map[10]: type 1, range 32, base f6000000, size 20, enabled pcib2: slot 8 INTA routed to irq 19 found-> vendor=0x1127, dev=0x0400, revid=0x01 bus=2, slot=8, func=0 class=02-03-00, hdrtype=0x00, mfdev=0 cmdreg=0x0016, statreg=0x0220, cachelnsz=8 (dwords) lattimer=0x20 (960 ns), mingnt=0x10 (4000 ns), maxlat=0x01 (250 ns) intpin=a, irq=19 pci2: at device 5.0 (no driver attached) pci2: at device 6.0 (no driver attached) pci2: at device 8.0 (no driver attached) ata: ata0 already exists; skipping it ata: ata1 already exists; skipping it pnpbios: 13 devices, largest 114 bytes PNP0501: adding irq mask 0x10 PNP0501: adding io range 0x3f8-0x3ff, size=0x8, align=0 pnpbios: handle 2 device ID PNP0501 (0105d041) PNP0700: adding irq mask 0x40 PNP0700: adding dma mask 0x4 PNP0700: adding io range 0x3f2-0x3f5, size=0x4, align=0 pnpbios: handle 4 device ID PNP0700 (0007d041) PNP0f13: adding irq mask 0x1000 pnpbios: handle 5 device ID PNP0f13 (130fd041) PNP0c01: adding fixed memory32 range 0-0x9ffff, size=0xa0000 PNP0c01: adding fixed memory32 range 0x100000-0x1fffffff, size=0x1ff00000 PNP0c01: adding fixed memory32 range 0xe8000-0xeffff, size=0x8000 PNP0c01: adding fixed memory32 range 0xf0000-0xf3fff, size=0x4000 PNP0c01: adding fixed memory32 range 0xf4000-0xf7fff, size=0x4000 PNP0c01: adding fixed memory32 range 0xf8000-0xfffff, size=0x8000 PNP0c01: adding fixed memory32 range 0xc8800-0xcbfff, size=0x3800 PNP0c01: adding fixed memory32 range 0xfffe0000-0xffffffff, size=0x20000 pnpbios: handle 6 device ID PNP0c01 (010cd041) PNP0100: adding irq mask 0x1 PNP0100: adding io range 0x40-0x43, size=0x4, align=0 pnpbios: handle 8 device ID PNP0100 (0001d041) PNP0b00: adding irq mask 0x100 PNP0b00: adding io range 0x70-0x75, size=0x6, align=0 pnpbios: handle 9 device ID PNP0b00 (000bd041) PNP0303: adding irq mask 0x2 PNP0303: adding io range 0x60-0x60, size=0x1, align=0 PNP0303: adding io range 0x64-0x64, size=0x1, align=0 pnpbios: handle 10 device ID PNP0303 (0303d041) PNP0c04: adding irq mask 0x2000 PNP0c04: adding io range 0xf0-0xf0, size=0x1, align=0 pnpbios: handle 11 device ID PNP0c04 (040cd041) PNP0200: adding dma mask 0x10 PNP0200: adding io range 0-0xf, size=0x10, align=0 PNP0200: adding io range 0x80-0x90, size=0x11, align=0 PNP0200: adding io range 0x94-0x9f, size=0xc, align=0 PNP0200: adding io range 0xc0-0xde, size=0x1f, align=0 pnpbios: handle 12 device ID PNP0200 (0002d041) PNP0800: adding io range 0x61-0x61, size=0x1, align=0x1 pnpbios: handle 13 device ID PNP0800 (0008d041) PNP0a03: adding io range 0xcf8-0xcff, size=0x8, align=0 pnpbios: handle 14 device ID PNP0a03 (030ad041) PNP0c02: adding io range 0xe400-0xe47f, size=0x80, align=0 PNP0c02: adding io range 0xe4e0-0xe4ff, size=0x20, align=0 pnpbios: handle 15 device ID PNP0c02 (020cd041) Trying Read_Port at 203 Trying Read_Port at 243 Trying Read_Port at 283 Trying Read_Port at 2c3 Trying Read_Port at 303 Trying Read_Port at 343 Trying Read_Port at 383 Trying Read_Port at 3c3 sc: sc0 already exists; skipping it vga: vga0 already exists; skipping it isa_probe_children: disabling PnP devices isa_probe_children: probing non-PnP devices orm0: