Re: [PATCH v2 0/5] KVM: Fix oneshot interrupts forwarding

From: Paolo Bonzini
Date: Thu Aug 11 2022 - 02:48:39 EST


On 8/10/22 19:02, Dmytro Maluka wrote:
1. If vEOI happens for a masked vIRQ, notify resamplefd as usual,
but also remember this vIRQ as, let's call it, "pending oneshot".

2. A new physical IRQ is immediately generated, so the vIRQ is
properly set as pending.

3. After the vIRQ is unmasked by the guest, check and find out that
it is not just pending but also "pending oneshot", so don't
deliver it to a vCPU. Instead, immediately notify resamplefd once
again.

In other words, don't avoid extra physical interrupts in the host
(rather, use those extra interrupts for properly updating the pending
state of the vIRQ) but avoid propagating those extra interrupts to the
guest.

Does this sound reasonable to you?

Yeah, this makes sense and it lets the resamplefd set the "pending" status in the vGIC. It still has the issue that the interrupt can remain pending in the guest for longer than it's pending on the host, but that can't be fixed?

Paolo