Re: [patch 3/3] genirq: mark io_apic level interrupts to avoidresend

From: Benjamin Herrenschmidt
Date: Mon Aug 13 2007 - 15:10:51 EST



> handle_fasteoi_irq is special. It is used by ioapic and weird Powerpc
> hardware. We marked the ioapic level interrupts IRQ_LEVEL, so we wont
> get a resend on them (see kernel/irq/resend.c)

s/weird/sane :-)

More specifically, it's used by "intelligent" PICs that automatically do
the masking of the source (or internally handle priority levels) and
only need an "eoi" when the OS is finished processing the latest
interrupt. (On those PICs, the ack is generally an implicit part of
fetching the next pending interrupt, and the eoi consist of bringing the
current processor priority back to what it was before the interrupt
occured).

I also suspect that any hypervisor using a different method than this
one for paravirt irqs is broken :-)

Ben.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/