On 25/01/2018 05:03, Tiwei Bie wrote: > The key difference with PCI passthru is that, in this case only > the data path of the device (e.g. DMA ring, notify region and > queue interrupt) is pass-throughed to the VM, the device control > path (e.g. PCI configuration space and MMIO regions) is still > defined and emulated by QEMU. > > The benefits of keeping virtio device emulation in QEMU compared > with virtio device PCI passthru include (but not limit to): > > - consistent device interface for guest OS in the VM; > - max flexibility on the hardware (i.e. the accelerators) design; > - leveraging the existing virtio live-migration framework; > > The virtual IOMMU isn't supported by the accelerators for now. > Because vhost-user currently lacks of an efficient way to share > the IOMMU table in VM to vhost backend. That's why the software > implementation of virtual IOMMU support in vhost-user backend > can't support dynamic mapping well. Once this problem is solved > in vhost-user, virtual IOMMU can be supported by accelerators > too, and the IOMMU feature bit checking in this patch can be > removed.
I don't understand why this would use vhost-user. vhost-user is meant for connecting to e.g. a user-space switch that is shared between multiple virtual machines. In this case, there would be one VFIO device per VM (because different VM must be in different VFIO groups). So I don't understand the benefit of configuring the control path of the VFIO device outside QEMU. Paolo