This patch series integrates VFIO with virtio-iommu. This is only applicable for PCI pass-through with virtio-iommu.
This series is available at: https://github.com/bharat-bhushan-devel/qemu.git virtio-iommu-vfio-integration-v8 This is tested with assigning more than one pci devices to Virtual Machine. This series is based on: - virtio-iommu device emulation by Eric Augur. [v16,00/10] VIRTIO-IOMMU device https://github.com/eauger/qemu/tree/v4.2-virtio-iommu-v16 - Linux 5.6.0-rc4 v7->v8: - Set page size mask as per host This fixes issue with 64K host/guest - Device list from IOMMUDevice directly removed VirtioIOMMUNotifierNode - Add missing iep->viommu init on post-load v6->v7: - corrected email-address v5->v6: - Rebase to v16 version from Eric - Tested with upstream Linux - Added a patch from Eric/Myself on removing mmio-region error print in vfio v4->v5: - Rebase to v9 version from Eric - PCIe device hotplug fix - Added Patch 1/5 from Eric previous series (Eric somehow dropped in last version. - Patch "Translate the MSI doorbell in kvm_arch_fixup_msi_route" already integrated with vsmmu3 v3->v4: - Rebase to v4 version from Eric - Fixes from Eric with DPDK in VM - Logical division in multiple patches v2->v3: - This series is based on "[RFC v3 0/8] VIRTIO-IOMMU device" Which is based on top of v2.10-rc0 that - Fixed issue with two PCI devices - Addressed review comments v1->v2: - Added trace events - removed vSMMU3 link in patch description Bharat Bhushan (8): hw/vfio/common: Remove error print on mmio region translation by viommu memory: Add interface to set iommu page size mask vfio: set iommu page size as per host supported page size virtio-iommu: set supported page size mask virtio-iommu: Add iommu notifier for map/unmap virtio-iommu: Call iommu notifier for attach/detach virtio-iommu: add iommu replay virtio-iommu: add iommu notifier memory-region include/exec/memory.h | 20 ++++ include/hw/virtio/virtio-iommu.h | 2 + hw/vfio/common.c | 5 +- hw/virtio/virtio-iommu.c | 192 ++++++++++++++++++++++++++++++- memory.c | 10 ++ hw/virtio/trace-events | 5 + 6 files changed, 231 insertions(+), 3 deletions(-) -- 2.17.1