lkml.org 
[lkml]   [1998]   [Feb]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[miniPatch] 2.1.8[67] lockups

thanks to the detective work of Pablo Bianucci, a very subtle lockup has
been traced back. It looks like [i'm not 100% sure] that certain boards do
not like if the local APIC and the IO-APIC is accessed at once. Since the
IO-APIC code already serializes local APIC and IO-APCI access via
irq_controller_lock, this was not a problem. The only remaining window was
the local APC timer interrupt, which acks the local APIC without aquiring
the irq controller spinlock first. The attached patch fixes this problem,
i'm curious wether this makes some other 2.1.8[67] lockups go away?

-- mingo

--- linux/arch/i386/kernel/.smp.c.orig Fri Feb 20 11:18:06 1998
+++ linux/arch/i386/kernel/smp.c Fri Feb 20 11:19:28 1998
@@ -1420,7 +1420,9 @@
* want to be able to accept NMI tlb invalidates
* during this time.
*/
+ spin_lock(&irq_controller_lock);
ack_APIC_irq ();
+ spin_unlock(&irq_controller_lock);

smp_local_timer_interrupt(regs);
}
--- linux/arch/i386/kernel/.irq.c.orig Fri Feb 20 11:16:17 1998
+++ linux/arch/i386/kernel/irq.c Fri Feb 20 11:17:29 1998
@@ -716,10 +716,8 @@

irq_exit(cpu, irq);
__restore_flags(flags);
- } else {
- enable_IO_APIC_irq(irq);
+ } else
spin_unlock_irqrestore(&irq_controller_lock, flags);
- }
}
#endif



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu

\
 
 \ /
  Last update: 2005-03-22 13:41    [W:0.022 / U:0.852 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site