[libvirt] SRIOV configuration

Edward Haas edwardh at redhat.com
Mon Sep 21 15:04:36 UTC 2020


Hello,

We encountered a problem while testing SRIOV on kubevirt [1]:

We are currently using the Device "hostdev" generic options to
pass-through the VF to the guest.
It is not done through the "interface" (with type hostdev) because
that option requires access to the PF which is not available in our
case (the VF is moved to the container namespace where libvirt runs,
but not the PF, however libvirt attempts to access the PF and fails).

The PCI addresses appearing on the domxml are not the same as the ones
mappend/detected in the VM itself. I compared the domxml on the host
and the lspci in the VM while the VM runs.
This occurs only when SRIOV is defined, messing up also the other
"regular" vnics.
Somehow, everything comes up and runs (with the SRIOV interface as
well) on the first boot (even though the PCI addresses are not in
sync), but additional boots cause the VM to mess up the interfaces
(not all are detected).

This is how the domxml hostdev section looks like:
```
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x3b' slot='0x0a' function='0x4'/>
      </source>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x01'
function='0x0'/>
    </hostdev>
```

Is there something we are missing or we misconfigured?
Tested with 6.0.0-16.fc31

My second question is: Can libvirt avoid accessing the PF (as we do
not need mac and other options).

1. https://github.com/kubevirt/kubevirt

Thanks,
Edy.




More information about the libvirt-users mailing list