Re: [v4 08/16] KVM: kvm-vfio: User API for IRQ forwarding

From: Joerg Roedel
Date: Mon Jun 29 2015 - 05:06:51 EST


Hi Feng,

On Thu, Jun 25, 2015 at 09:11:52AM -0600, Alex Williamson wrote:
> So the trouble is that QEMU vfio updates a single MSI vector, but that
> just updates a single entry within a whole table of routes, then the
> whole table is pushed to KVM. But in kvm_set_irq_routing() we have
> access to both the new and the old tables, so we do have the ability to
> detect the change. We can therefore detect which GSI changed and
> cross-reference that to KVMs irqfds. If we have an irqfd that matches
> the GSI then we have all the information we need, right? We can use the
> eventfd_ctx of the irqfd to call into the IRQ bypass manager if we need
> to. If it's an irqfd that's already enabled for bypass then we may
> already have the data we need to tweak the PI config.
>
> Yes, I agree it's more difficult, but it doesn't appear to be
> impossible, right?

Since this also doesn't happen very often, you could also just update _all_
PI data-structures from kvm_set_irq_routing, no? This would just
resemble the way the API works anyway.

You just need to be careful to update the data structures only when the
function can't fail anymore, so that you don't have to roll back
anything.


Joerg

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