7 Replies Latest reply on Apr 27, 2017 7:02 PM by Intel Corporation

    devices in same iommu_group error with SRIOV NIC X540-T2 when KVM VM starts

    w180112

      Hi

      I am trying SRIOV NIC on my computer(intel X540-T2)

      everything is fine, I can see VF and PF in PCI list but when I assigned 1 VF to 1 VM and then boot it, I got an error message

      here is the message

       

       

      Internal error: process exited while connecting to monitor: 2017-04-11T04:32:00.179452Z qemu-kvm: -device vfio-pci,host=02:10.0,id=hostdev0,bus=pci.0,addr=0x3: vfio: error, group 1 is not viable, please ensure all devices within the iommu_group are bound to their vfio bus driver. 2017-04-11T04:32:00.179495Z qemu-kvm: -device vfio-pci,host=02:10.0,id=hostdev0,bus=pci.0,addr=0x3: vfio: failed to get group 1 2017-04-11T04:32:00.179502Z qemu-kvm: -device vfio-pci,host=02:10.0,id=hostdev0,bus=pci.0,addr=0x3: Device initialization failed. 2017-04-11T04:32:00.179511Z qemu-kvm: -device vfio-pci,host=02:10.0,id=hostdev0,bus=pci.0,addr=0x3: Device 'vfio-pci' could not be initialized Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 88, in cb_wrapper callback(asyncjob, *args, **kwargs) File "/usr/share/virt-manager/virtManager/asyncjob.py", line 124, in tmpcb callback(*args, **kwargs) File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 83, in newfn ret = fn(self, *args, **kwargs) File "/usr/share/virt-manager/virtManager/domain.py", line 1404, in startup self._backend.create() File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1035, in create if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self) libvirtError: internal error: process exited while connecting to monitor: 2017-04-11T04:32:00.179452Z qemu-kvm: -device vfio-pci,host=02:10.0,id=hostdev0,bus=pci.0,addr=0x3: vfio: error, group 1 is not viable, please ensure all devices within the iommu_group are bound to their vfio bus driver. 2017-04-11T04:32:00.179495Z qemu-kvm: -device vfio-pci,host=02:10.0,id=hostdev0,bus=pci.0,addr=0x3: vfio: failed to get group 1 2017-04-11T04:32:00.179502Z qemu-kvm: -device vfio-pci,host=02:10.0,id=hostdev0,bus=pci.0,addr=0x3: Device initialization failed. 2017-04-11T04:32:00.179511Z qemu-kvm: -device vfio-pci,host=02:10.0,id=hostdev0,bus=pci.0,addr=0x3: Device 'vfio-pci' could not be initialized

       

       

      I think the reason is all of the VF and PF devices are in the same iommu_group and I found they are really in the same iommu_group after I check that.

      It seems that all devices in same iommu_group should be assigned to 1 VM, if not, it will cause an error.

      However I need to assign each VF to different VM.

      Now I temporary move the NIC to a server and the problem is gone but because of some reason I prefer to use this NIC on my original computer.

       

      Does this have solution? thanks a lot.

       

      My environment :

      Host OS : RHEL 7.3 Kernel Version 3.10.0-514.10.2.el7.x86_64

      GNOME 3.14.2

      CPU: I7-6700

      MB:ASUS Q170

      PF driver : ixgbe 5.0.4

      kernel command line : intel_iommu=on pci=realloc pci=assign-busses

      VM OS : fedora 25

      VF driver : ixgbevf 4.0.3