Add new 'pci' controller type with two models: pci-root - auto-added to machines with implicit pci bus pci-bridge - auto-added if the devices would not leave at least one slot empty on bus 0 or bus >0 is specified v3: moved the implicit PCI root addition to qemu's post parse callback, added an xml -> xml test and schema validation rewrote implicit controller removal and search for free slots check for multiple pci controllers with the same index added documentation Ján Tomko (4): qemu: call post-parse callbacks when parsing command line too conf: add PCI controllers qemu: auto-add pci-root controller for pc machine types qemu: auto-add bridges and allow using them liguang (1): qemu: build command line for pci-bridge device docs/formatdomain.html.in | 22 +- docs/schemas/domaincommon.rng | 12 + src/conf/domain_conf.c | 51 +++- src/conf/domain_conf.h | 20 ++ src/libvirt_private.syms | 2 + src/qemu/qemu_capabilities.c | 3 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 296 +++++++++++++++++---- src/qemu/qemu_command.h | 5 +- src/qemu/qemu_domain.c | 67 ++++- tests/domainsnapshotxml2xmlout/disk_snapshot.xml | 1 + tests/domainsnapshotxml2xmlout/external_vm.xml | 1 + tests/domainsnapshotxml2xmlout/full_domain.xml | 1 + tests/domainsnapshotxml2xmlout/metadata.xml | 1 + tests/qemuhelptest.c | 21 +- .../qemuxml2argvdata/qemuxml2argv-blkdeviotune.xml | 1 + .../qemuxml2argv-blkiotune-device.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-blkiotune.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml | 2 + .../qemuxml2argvdata/qemuxml2argv-boot-floppy.xml | 3 + .../qemuxml2argv-boot-menu-disable.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-boot-multi.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-boot-network.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-boot-order.xml | 1 + .../qemuxml2argv-channel-guestfwd.xml | 1 + .../qemuxml2argv-channel-virtio.xml | 1 + .../qemuxml2argv-clock-localtime.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml | 2 + .../qemuxml2argv-console-compat.xml | 2 + .../qemuxml2argv-console-virtio-many.xml | 1 + .../qemuxml2argv-cpu-eoi-disabled.xml | 1 + .../qemuxml2argv-cpu-eoi-enabled.xml | 1 + .../qemuxml2argv-cpu-host-kvmclock.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-cpu-kvmclock.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-cputune.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-disk-aio.xml | 1 + .../qemuxml2argv-disk-cdrom-empty.xml | 3 + tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml | 3 + .../qemuxml2argv-disk-drive-boot-cdrom.xml | 3 + .../qemuxml2argv-disk-drive-boot-disk.xml | 3 + .../qemuxml2argv-disk-drive-cache-directsync.xml | 1 + .../qemuxml2argv-disk-drive-cache-unsafe.xml | 1 + .../qemuxml2argv-disk-drive-cache-v1-none.xml | 1 + .../qemuxml2argv-disk-drive-cache-v1-wb.xml | 1 + .../qemuxml2argv-disk-drive-cache-v1-wt.xml | 1 + .../qemuxml2argv-disk-drive-cache-v2-none.xml | 1 + .../qemuxml2argv-disk-drive-cache-v2-wb.xml | 1 + .../qemuxml2argv-disk-drive-cache-v2-wt.xml | 1 + ...muxml2argv-disk-drive-error-policy-enospace.xml | 1 + .../qemuxml2argv-disk-drive-error-policy-stop.xml | 1 + ...rgv-disk-drive-error-policy-wreport-rignore.xml | 1 + .../qemuxml2argv-disk-drive-fat.xml | 1 + .../qemuxml2argv-disk-drive-fmt-qcow.xml | 1 + .../qemuxml2argv-disk-drive-network-gluster.xml | 1 + .../qemuxml2argv-disk-drive-network-iscsi-auth.xml | 1 + .../qemuxml2argv-disk-drive-network-iscsi.xml | 1 + .../qemuxml2argv-disk-drive-network-nbd-export.xml | 1 + ...xml2argv-disk-drive-network-nbd-ipv6-export.xml | 1 + .../qemuxml2argv-disk-drive-network-nbd-ipv6.xml | 1 + .../qemuxml2argv-disk-drive-network-nbd-unix.xml | 1 + .../qemuxml2argv-disk-drive-network-nbd.xml | 1 + ...emuxml2argv-disk-drive-network-rbd-ceph-env.xml | 2 + .../qemuxml2argv-disk-drive-network-rbd-ipv6.xml | 1 + .../qemuxml2argv-disk-drive-network-rbd.xml | 1 + .../qemuxml2argv-disk-drive-network-sheepdog.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-disk-floppy.xml | 4 + tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml | 5 + .../qemuxml2argvdata/qemuxml2argv-disk-mirror.xml | 1 + .../qemuxml2argv-disk-scsi-device.xml | 1 + .../qemuxml2argv-disk-scsi-disk-vpd.xml | 1 + ...qemuxml2argv-disk-scsi-lun-passthrough-sgio.xml | 1 + .../qemuxml2argv-disk-scsi-megasas.xml | 1 + .../qemuxml2argv-disk-scsi-virtio-scsi.xml | 1 + .../qemuxml2argv-disk-scsi-vscsi.xml | 1 + .../qemuxml2argv-disk-source-pool.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml | 3 + .../qemuxml2argv-disk-virtio-scsi-num_queues.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-disk-virtio.xml | 5 + .../qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml | 5 + .../qemuxml2argv-encrypted-disk.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-eoi-disabled.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-eoi-enabled.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-event_idx.xml | 1 + .../qemuxml2argv-floppy-drive-fat.xml | 1 + .../qemuxml2argv-graphics-listen-network.xml | 1 + .../qemuxml2argv-graphics-sdl-fullscreen.xml | 2 + .../qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml | 2 + .../qemuxml2argv-graphics-spice-compression.xml | 1 + .../qemuxml2argv-graphics-spice-qxl-vga.xml | 1 + .../qemuxml2argv-graphics-spice.xml | 1 + .../qemuxml2argv-graphics-vnc-sasl.xml | 2 + .../qemuxml2argv-graphics-vnc-socket.xml | 2 + .../qemuxml2argv-graphics-vnc-tls.xml | 2 + .../qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml | 2 + .../qemuxml2argv-hostdev-pci-address.xml | 2 + .../qemuxml2argv-hostdev-usb-address.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-hyperv.xml | 1 + .../qemuxml2argv-input-usbmouse.xml | 2 + .../qemuxml2argv-input-usbtablet.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-kvmclock.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-lease.xml | 1 + .../qemuxml2argv-machine-core-off.xml | 2 + .../qemuxml2argv-machine-core-on.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-migrate.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-minimal.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml | 2 + .../qemuxml2argv-misc-disable-s3.xml | 2 + .../qemuxml2argv-misc-disable-suspends.xml | 2 + .../qemuxml2argv-misc-enable-s4.xml | 2 + .../qemuxml2argv-misc-no-reboot.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml | 2 + .../qemuxml2argv-net-bandwidth.xml | 1 + .../qemuxml2argv-net-eth-ifname.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml | 2 + .../qemuxml2argvdata/qemuxml2argv-net-hostdev.xml | 1 + .../qemuxml2argv-net-openvswitch.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-net-user.xml | 2 + .../qemuxml2argv-net-virtio-device.xml | 1 + .../qemuxml2argv-net-virtio-network-portgroup.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml | 2 + .../qemuxml2argv-nographics-vga.xml | 2 + .../qemuxml2argv-numad-static-vcpu-no-numatune.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml | 210 +++++++++++++++ tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml | 1 + .../qemuxml2argv-qemu-ns-no-env.xml | 2 + .../qemuxml2argv-reboot-timeout-disabled.xml | 1 + .../qemuxml2argv-reboot-timeout-enabled.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml | 2 + .../qemuxml2argv-seclabel-dynamic-baselabel.xml | 1 + .../qemuxml2argv-seclabel-dynamic-override.xml | 1 + .../qemuxml2argv-seclabel-none.xml | 1 + .../qemuxml2argv-seclabel-static.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml | 2 + .../qemuxml2argvdata/qemuxml2argv-serial-file.xml | 2 + .../qemuxml2argvdata/qemuxml2argv-serial-many.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml | 2 + .../qemuxml2argv-serial-tcp-telnet.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml | 2 + .../qemuxml2argvdata/qemuxml2argv-serial-unix.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml | 2 + tests/qemuxml2argvdata/qemuxml2argv-smp.xml | 2 + .../qemuxml2argvdata/qemuxml2argv-sound-device.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-sound.xml | 2 + .../qemuxml2argv-tpm-passthrough.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-usb-redir.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-virtio-lun.xml | 1 + .../qemuxml2argv-virtio-rng-egd.xml | 1 + .../qemuxml2argv-virtio-rng-random.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml | 2 + .../qemuxml2xmlout-balloon-device-auto.xml | 1 + .../qemuxml2xmlout-channel-virtio-auto.xml | 1 + .../qemuxml2xmlout-console-compat-auto.xml | 1 + .../qemuxml2xmlout-console-virtio.xml | 1 + .../qemuxml2xmlout-disk-mirror.xml | 1 + .../qemuxml2xmlout-disk-scsi-device-auto.xml | 1 + .../qemuxml2xmlout-graphics-listen-network2.xml | 1 + .../qemuxml2xmlout-graphics-spice-timeout.xml | 1 + .../qemuxml2xmloutdata/qemuxml2xmlout-memtune.xml | 1 + .../qemuxml2xmloutdata/qemuxml2xmlout-metadata.xml | 1 + ...emuxml2xmlout-numad-auto-memory-vcpu-cpuset.xml | 1 + ...ad-auto-memory-vcpu-no-cpuset-and-placement.xml | 1 + .../qemuxml2xmlout-numad-auto-vcpu-no-numatune.xml | 1 + .../qemuxml2xmlout-serial-target-port-auto.xml | 1 + .../qemuxml2xmlout-usb-ich9-ehci-addr.xml | 1 + tests/qemuxml2xmltest.c | 1 + 169 files changed, 870 insertions(+), 70 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pci-bridge.xml -- 1.8.1.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list