Subject: [RFC v2 0/6] IRQ bypass manager and irqfd consumer

From: [email-masked] (Paolo Bonzini)
Date: Thu, 9 Jul 2015 16:38:41 +0200

On 09/07/2015 16:13, Alex Williamson wrote:
> On Thu, 2015-07-09 at 14:28 +0200, Joerg Roedel wrote:
>> On Tue, Jul 07, 2015 at 11:17:48AM -0600, Alex Williamson wrote:
>>> Hosting the bypass manager in kernel/irq seemed appropriate, but really
>>> it could be anywhere.  Does anyone have a different preference or
>>> specifically want it under their scope?  We had originally thought of
>>> this as an IOMMU service, but I think we've generalized it beyond that.
>>> I expect we should also add the necessary hooks to turn it into a
>>> loadable module to keep the tinification folks happy, I'll incorporate
>>> the current working changes and post a version with that.
>>
>> Yeah, this is only an IOMMU service on x86, afaik. So drivers/iommu is
>> probably the wrong place to host it.
>>
>> Will there be any other producers than VFIO or any other consumers than
>> KVM? If not, it should live in one of these spaces. KVM is probably the
>> best choice, as any hardware feature that uses this targets
>> virtualization, so there will hardly ever be another consumer than KVM.
> 
> If we think that it's *only* a kvm-vfio interaction then we could add it
> to virt/kvm/vfio.c.  vfio could use symbol_get to avoid a module
> dependency and effectively disable the code path when not used with kvm.
> The reverse model of hosting it in vfio and using symbol_get from
> kvm-vfio would also work.  Do we really want to declare it to be
> kvm-vfio specific though?  Another option would be to simply host it
> under virt/lib with module dependencies for both vfio and kvm.

I wonder if in the future we may have some kind of driver-mediated
passthrough, e.g. for network drivers.  They might use the bypass
mechanism too.  So I think drivers/vfio is too restrictive.

virt/ right now only hosts KVM, but it could for example host lguest
too.  virt/lib/ is okay with me.

Paolo