[libvirt] [PATCH v4 00/25] Use more PCIe less legacy PCI

Laine Stump laine at laine.org
Fri Oct 14 19:53:56 UTC 2016


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




More information about the libvir-list mailing list