Query on VFIO in Virtual machine

From: Nitin Saxena
Date: Thu Jun 22 2017 - 12:48:15 EST


Hi,

I have a PCI device connected as an endpoint to Intel host machine.
The requirement is to run dpdk like user space data path application
in VM using PCI PF passthrough (SRIOV disabled). This application
works fine on host kernel and uses VFIO to get MSIX interrupts from
PCI device. We are trying to run this existing application in VM using
PCI passthrough. This application has capability to use
VFIO_IOMMU_TYPE1 as wells as VFIO_NOIOMMU.

On Intel host machine VT-d has been enabled and using virt-manager PCI
device PF is assigned to the VM. This makes virt-manager to implicitly
binds PCI device PF to vfio with vfio_iommu_type1. The VM LINUX kernel
was booted with intel_iommu=on as boot parameter.

My question: Is it possible that vfio can coexist in host (by
virt-manager) as well as VM (by application)? If yes, does application
running inside VM needs to configure VFIO with iommu_type=IOMMU or
iommu_type=no-iommu.

In VM I tried inserting vfio_iommu_type1.ko kernel module which failed
with "No such device error". Thats why I am confused whether my
requirement is legitimate or not. What could be the best solution?

Thanks in advance
Nitin