Re: MSI problem since 2.6.21 for devices not providing a mask in their MSI capability

From: Eric W. Biederman
Date: Wed Oct 03 2007 - 18:26:21 EST


Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> writes:
>
> Well, yes and no ... A valid option here would be to use soft-masking,
> which is possible because MSIs are edge interrupts. That is, basically,
> when masked, just ignore them and set IRQF_PENDING, and when unmasked,
> replay (which can be done with softirq if there is no HW mechanism for
> that). The genirq code contains all the necessary infrastructure for
> doing that stuff, it's fairly trivial, and would probably avoid stepping
> in HW lalaland (how much do you bet HW generally get that masking thing
> wrong ?)

Well. If people actually use it I suspect it will work ok. The
circuitry is quite simple so as long as people get their requirements
straight we should be fine. Which is why I tried to get everything
working as well as we could sooner rather then later. Of course
drivers are free not to call anything that would cause the irq
to be masked.

That said the current disable_irq and enable_irq path is using the
IRQF_PENDING infrastructure on x86. So the only time this comes up
is for irq migration.

Eric
-
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/