i386/5790: broken interrupts on smp

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <gnats@...>
Date: Thursday, April 10, 2008 - 3:53 pm

>Number:         5790
net
	System      : OpenBSD 4.3
	due to lapic ack done too late nested interrupts
	are never taken as well as ipis and other lapic
	events. this produces (besides performance problems)
	lockups triggered by the tlb flushing ipis.
	generate interrupts

Index: apicvec.s
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/apicvec.s,v
retrieving revision 1.10
diff -u -r1.10 apicvec.s
--- apicvec.s	25 May 2007 15:55:26 -0000	1.10
+++ apicvec.s	8 Feb 2008 15:00:07 -0000
@@ -338,22 +338,22 @@
 #define APIC_STRAY_TEST(name,num)
 #endif /* DEBUG */
 
-APICINTR(ioapic,0, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,1, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,2, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,3, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,4, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,5, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,6, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,7, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,8, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,9, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,10, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,11, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,12, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,13, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,14, voidop, ioapic_asm_ack, voidop, voidop, voidop)
-APICINTR(ioapic,15, voidop, ioapic_asm_ack, voidop, voidop, voidop)
+APICINTR(ioapic,0, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,1, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,2, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,3, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,4, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,5, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,6, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,7, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,8, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,9, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,10, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,11, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,12, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,13, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,14, ioapic_asm_ack, voidop, voidop, voidop, voidop)
+APICINTR(ioapic,15, ioapic_asm_ack, voidop, voidop, voidop, voidop)
 
 	.globl	_C_LABEL(Xintr_ioapic0),_C_LABEL(Xintr_ioapic1)
 	.globl	_C_LABEL(Xintr_ioapic2),_C_LABEL(Xintr_ioapic3)


Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
i386/5790: broken interrupts on smp, , (Thu Apr 10, 3:53 pm)