From owner-freebsd-current@FreeBSD.ORG Fri Nov 7 02:30:12 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 2F86A16A4CE; Fri, 7 Nov 2003 02:30:12 -0800 (PST) Received: from mailhub.fokus.fraunhofer.de (mailhub.fokus.fraunhofer.de [193.174.154.14]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0F2C843FA3; Fri, 7 Nov 2003 02:30:08 -0800 (PST) (envelope-from brandt@fokus.fraunhofer.de) Received: from beagle (beagle [193.175.132.100])hA7AU7605233; Fri, 7 Nov 2003 11:30:07 +0100 (MET) Date: Fri, 7 Nov 2003 11:30:06 +0100 (CET) From: Harti Brandt To: John Baldwin In-Reply-To: Message-ID: <20031107105840.M11960@beagle.fokus.fraunhofer.de> References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: current@FreeBSD.org Subject: RE: 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: Fri, 07 Nov 2003 10:30:12 -0000 On Thu, 6 Nov 2003, John Baldwin wrote: JB> JB>On 06-Nov-2003 Harti Brandt wrote: JB>> JB>I figured out what is happenning I think. You are getting a spurious JB>> JB>interrupt from the 8259A PIC (which comes in on IRQ 7). The IRR register JB>> JB>lists pending interrupts still waiting to be serviced. Try using JB>> JB>'options NO_MIXED_MODE' to stop using the 8259A's for the clock and see if JB>> JB>the spurious IRQ 7 interrupts go away. JB>> JB>> Ok, that seems to help. Interesting although why do these interrupts JB>> happen only with a larger HZ and when the kernel is doing printfs (this JB>> machine has a serial console). I have also not tried to disable SIO2 and JB>> the parallel port. JB> JB>Can you also try turning mixed mode back on and using JB>http://www.FreeBSD.org/~jhb/patches/spurious.patch JB> JB>You should get some stray IRQ 7's in the vmstat -i output as well as a few JB>printf's to the kernel console. Now I'm getting the same 'Couldn't get vector from ISR!' as before on Xapic_isr1. Again ISR1 is 0 and IRR1 is 0x100. Here is some data: db> trace Debugger(c05ea5f4,0,c05fa63b,c0821b5c,100) at Debugger+0x55 panic(c05fa63b,c0821b6c,c062ab80,c0821bb4,c05ab57d) at panic+0x156 lapic_handle_intr(ffffffff) at lapic_handle_intr+0x1b Xapic_isr1() at Xapic_isr1+0x3d --- interrupt, eip = 0xc04bbbfd, esp = 0xc0821bb0, ebp = 0xc0821bb4 --- critical_exit(c0821bf4,c059af49,c0638100,0,c05f7a08) at critical_exit+0x2d _mtx_unlock_spin_flags(c0638100,0,c05f7a08,c88,c0821bec) at _mtx_unlock_spin_flags+0x23 siocnputc(c061e8e0,a,5,c0821d10,a) at siocnputc+0xe9 cnputc(a,2060d900,1,0,c05eec77) at cnputc+0x7a putchar(a,c0821d10,1,0,0) at putchar+0x6c kvprintf(c05eec76,c04d46b0,c0821d10,a,c0821d30) at kvprintf+0x8d printf(c05eec76,0,ffffffff,0,c05c6e20) at printf+0x57 tc_init(c0622c60,c0821d78,c05c7b8f,8,8) at tc_init+0xc4 init_TSC_tc(8,8,c05c6e20,0,a0) at init_TSC_tc+0x91 cpu_initclocks(c0821d98,c0490ac5,0,81e000,81ec00) at cpu_initclocks+0x11f initclocks(0,81e000,81ec00,81e000,0) at initclocks+0x8 mi_startup() at mi_startup+0xb5 begin() at begin+0x2c db> x *lapic+0x110 0xd78f8110: 0 db> x *lapic+0x210 0xd78f8210: 100 IRQ7 is the parallel port according to dmesg. harti -- harti brandt, http://www.fokus.fraunhofer.de/research/cc/cats/employees/hartmut.brandt/private brandt@fokus.fraunhofer.de, harti@freebsd.org