[PATCH] qemu: auto-assign hostdev interface devices to PCIe

Andrea Bolognani abologna at redhat.com
Thu Jun 18 16:23:36 UTC 2020

On Wed, 2020-06-17 at 17:17 -0400, Laine Stump wrote:
> Until recently, an <interface type='network'> would automatically be
> assigned model "rtl8139" (the default on x86 machinetypes), which in
> turn would lead to the device being assigned a PCI address on a
> conventional PCI controller (i.e. a pcie-to-pci-bridge). If the
> network was a typical Linux host bridge-based network that used an
> emulated device, this would be appropriate, since the guest actually
> would get an emulated rtl8139 NIC, and that device is a conventional
> PCI device.
> However, if the network being used was a pool of hostdev devices, the
> guest would get an actual PCIe network device assigned from the host
> via VFIO; while the interface model in that case is irrelevant for the
> QEMU commandline to assign the device, the PCI address would have
> already been assigned prior to runtime, so the address assignment
> would be done based on the model='rtl8139' - a conventional PCI
> device. VFIO assignment of a PCIe device to a conventional PCI slot
> works, but we would rather have these devices in a PCIe slot.
> Since commit bdb8f2e4186, if <interface type='network'> points to a
> etwork that is a pool of hostdev devices, the interface model will be
> _unset_ by default. This patch uses that information when deciding
> what type of slot to assign to the device: since all hostdev network
> interfaces are SR-IOV VFs, and *all* SR-IOV network cards are PCIe, it
> is safe to assume that the VFs are PCIe and we should assign then to a
> PCIe slot in the guest.
> Signed-off-by: Laine Stump <laine at redhat.com>

Reviewed-by: Andrea Bolognani <abologna at redhat.com>

Andrea Bolognani / Red Hat / Virtualization

More information about the libvir-list mailing list