[libvirt] [PATCH v3 0/5] qemu: add PCI bridge support

Ján Tomko jtomko at redhat.com
Mon Apr 22 18:43:10 UTC 2013


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




More information about the libvir-list mailing list