This is a rebase of v5 (, with the addition of patches 16 & 17, which
detect the type of VFIO assigned devices and assign them to either an
Express or a legacy PCI slot as appropriate,
Laine Stump (17):
qemu: new functions qemuDomainMachineHasPCI[e]Root()
qemu: new functions to calculate/set device pciConnectFlags
qemu: set/use info->pciConnectFlags when validating/assigning PCI
addresses
qemu: set/use proper pciConnectFlags during hotplug
qemu: set pciConnectFlags to 0 instead of PCI|HOTPLUGGABLE if device
isn't PCI
qemu: assign virtio devices to PCIe slot when appropriate
qemu: assign e1000e network devices to PCIe slots when appropriate
qemu: assign nec-xhci (USB3) controller to a PCIe address when
appropriate
qemu: only force an available legacy-PCI slot on domains with pci-root
qemu: auto-add pcie-root-port/dmi-to-pci-bridge controllers as needed
[RFC] qemu: if pci-bridge is in PCIe config w/o dmi-to-pci-bridge, add
it
qemu: don't force-add a dmi-to-pci-bridge just on principle
qemu: add a USB3 controller to Q35 domains by default
qemu: try to put ich9 sound device at 00:1B.0
qemu: initially reserve one open pcie-root-port for hotplug
qemu: propagate virQEMUDriver object to
qemuDomainDeviceCalculatePCIConnectFlags
qemu: assign vfio devices to PCIe addresses when appropriate
src/conf/device_conf.h | 5 +
src/conf/domain_addr.c | 112 ++-
src/conf/domain_addr.h | 3 +-
src/qemu/qemu_domain.c | 54 +-
src/qemu/qemu_domain.h | 2 +
src/qemu/qemu_domain_address.c | 880 +++++++++++++++++----
src/qemu/qemu_domain_address.h | 9 +-
src/qemu/qemu_hotplug.c | 28 +-
src/qemu/qemu_process.c | 13 +-
tests/qemuhotplugtest.c | 4 +-
tests/qemuxml2argvdata/qemuxml2argv-autoindex.args | 10 +-
.../qemuxml2argv-bios-nvram-secure.args | 1 +
.../qemuxml2argv-machine-smm-opt.args | 1 +
tests/qemuxml2argvdata/qemuxml2argv-pcie-root.args | 3 +-
.../qemuxml2argv-q35-default-devices-only.args | 23 +
.../qemuxml2argv-q35-default-devices-only.xml | 18 +
.../qemuxml2argv-q35-pcie-autoadd.args | 57 ++
.../qemuxml2argv-q35-pcie-autoadd.xml | 51 ++
tests/qemuxml2argvdata/qemuxml2argv-q35-pcie.args | 58 ++
tests/qemuxml2argvdata/qemuxml2argv-q35-pcie.xml | 67 ++
.../qemuxml2argv-q35-pm-disable-fallback.args | 1 +
.../qemuxml2argv-q35-pm-disable.args | 1 +
.../qemuxml2argv-q35-virt-manager-basic.args | 56 ++
.../qemuxml2argv-q35-virt-manager-basic.xml | 76 ++
.../qemuxml2argv-q35-virtio-pci.args | 58 ++
.../qemuxml2argv-q35-virtio-pci.xml | 1 +
tests/qemuxml2argvtest.c | 164 +++-
.../qemuxml2xmlout-autoindex.xml | 10 +-
.../qemuxml2xmlout-pcie-root.xml | 4 -
.../qemuxml2xmlout-q35-default-devices-only.xml | 45 ++
.../qemuxml2xmlout-q35-pcie-autoadd.xml | 148 ++++
.../qemuxml2xmloutdata/qemuxml2xmlout-q35-pcie.xml | 152 ++++
.../qemuxml2xmlout-q35-virt-manager-basic.xml | 121 +++
.../qemuxml2xmlout-q35-virtio-pci.xml | 152 ++++
tests/qemuxml2xmltest.c | 136 +++-
35 files changed, 2285 insertions(+), 239 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-default-devices-only.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-default-devices-only.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-pcie-autoadd.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-pcie-autoadd.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-pcie.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-pcie.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-virt-manager-basic.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-virt-manager-basic.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-q35-virtio-pci.args
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-q35-virtio-pci.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-q35-default-devices-only.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-q35-pcie-autoadd.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-q35-pcie.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-q35-virt-manager-basic.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-q35-virtio-pci.xml
--
2.7.4