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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list