The IOAPIC hack that does a level=>edge to mask does not disable interrupts. So we can receive interrupts when masked, and this means that we can miss interrupts that arrive when the thread is handling them. This patch adds the "IRQ_PENDING" logic of the edge irqs to be able to catch interrupts coming in when supposably "masked". Signed-off-by: Steven Rostedt <srostedt@xxxxxxxxxx> Index: linux-2.6.21-rt-hack/kernel/irq/chip.c =================================================================== --- linux-2.6.21-rt-hack.orig/kernel/irq/chip.c +++ linux-2.6.21-rt-hack/kernel/irq/chip.c @@ -398,8 +398,10 @@ handle_fasteoi_irq(unsigned int irq, str spin_lock(&desc->lock); - if (unlikely(desc->status & IRQ_INPROGRESS)) + if (unlikely(desc->status & IRQ_INPROGRESS)) { + desc->status |= IRQ_PENDING; goto out; + } desc->status &= ~(IRQ_REPLAY | IRQ_WAITING); kstat_cpu(cpu).irqs[irq]++; - To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html