The latest version of patches to auto-assign appropriate devices in
PCIe-capable domains to PCIe slots rather than legacy PCI, and to also
auto-add pcie-root-ports as necessary to make this easier.
I *think* I've dealt with all of Andrea's great critiques of V3,
either in my email responses or in these revised patches. Aside from
fixing typos and formatting problems, I also moved several "little
cosmetic fixes" out of the bigger functionality-changing patches, and
also split out the most confusing part of patch 20 (previously patch
15 - the one that auto-adds pcie-root-port and dmi-to-pci-bridge
controllers) into its own patch (doubly useful since the value of that
part of the patch is dubious - it is now the [RFC] patch 21)
As many of the simple costmetic patches as possible were pushed up to
the front of the series (if they weren't already there). If those are
ACKed on this round but others aren't, I'll push them immediately so I
don't need to resubmit the whole series again.
Some of these patches were ACKed last time, but I either had to change
them further due to changes in other patches, or I couldn't push them
because they have prerequisites that weren't ACKed. I've marked those
in the subject line (I've also marked entirely new patches in the
subject line).
Laine Stump (25):
qemu: new functions qemuDomainMachineHasPCI[e]Root()
qemu: replace a lot of "def->controllers[i]" with equivalent
"cont"
qemu: replace "def->nets[i]" with "net" and
"def->sounds[i]" with
"sound"
conf: add typedef for anonymous enum used for memballoon device model
qemu: remove superfluous setting of addrs->nbuses
qemu: make error message in qemuDomainPCIAddressSetCreate more clear.
qemu: change first arg of qemuDomainAttachChrDeviceAssignAddr()
conf: new function virDomainPCIAddressReserveNextAddr()
qemu: use virDomainPCIAddressReserveNextAddr in
qemuDomainAssignDevicePCISlots
conf: make virDomainPCIAddressGetNextSlot() a local static function
qemu: replace calls to virDomainPCIAddressReserveNext*() with static
function
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
src/conf/device_conf.h | 5 +
src/conf/domain_addr.c | 163 ++-
src/conf/domain_addr.h | 11 +-
src/conf/domain_conf.h | 4 +-
src/libvirt_private.syms | 2 +-
src/qemu/qemu_domain.c | 52 +-
src/qemu/qemu_domain.h | 2 +
src/qemu/qemu_domain_address.c | 1097 +++++++++++++++-----
src/qemu/qemu_domain_address.h | 4 +
src/qemu/qemu_hotplug.c | 27 +-
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, 2417 insertions(+), 364 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