Re: [kvm-devel] [RFC] Deferred interrupt handling.

From: Avi Kivity
Date: Wed Jul 18 2007 - 12:46:29 EST


Alan Cox wrote:
>> What if we will force the specific device to the end of the list. Once
>> IRQ_NONE was returned by the other devices, we will mask the irq,
>> forward the irq to the guest, issue a timer for 1msec. Motivation:
>> 1msec is long enough for the guest to ack the irq + host unmask the irq
>>
>
> It makes no difference. The deadlock isn't fixable by timing hacks.
> Consider the following sequence
>
>
> Guest0 - blocked on I/O
>
> IRQ14 from your hardware
> Block IRQ14
> Sent to guest (guest is blocked)
>
> IRQ14 from hard disk
> Ignored (as blocked)
>
> Deadlock
>

IMO the only reasonable solution is to disallow interrupt forwarding
with shared irqs. If someone later comes up with a bright idea, we can
implement it. Otherwise the problem will solve itself with hardware
moving to msi.


--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

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