Date: Fri, 7 Nov 2003 11:30:06 +0100 (CET) From: Harti Brandt <brandt@fokus.fraunhofer.de> To: John Baldwin <jhb@FreeBSD.org> Cc: current@FreeBSD.org Subject: RE: New interrupt stuff breaks ASUS 2 CPU system Message-ID: <20031107105840.M11960@beagle.fokus.fraunhofer.de> In-Reply-To: <XFMail.20031106122245.jhb@FreeBSD.org> References: <XFMail.20031106122245.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031107105840.M11960>