mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-27 08:05:24 +00:00
17133e3702
Quite a long time ago, (apparently between qemu 0.12 and 0.13) qemu quietly began supporting the optional specification of a domain in the host-side address of all pci passthrough commands (by simply prepending it to the bus:slot.function format, as "dddd:bb:ss.f"). Since machines with multiple PCI domains are very rare, this never came up in practice, so libvirt was never updated to support it. This patch takes the first step to supporting specification of a non-0 domain in the host-side address of PCI devices being assigned to a domain, by adding a capability bit to indicate support "QEMU_CAPS_HOST_PCI_MULTIDOMAIN", and detect it. Since this support was added in a version prior to the minimum version required for QMP-style capabilities detection, the capability is always enabled for any qemu that uses QMP for capabilities detection. For older qemus, the only clue that a domain can be specified in the host pci address is the presence of the string "[seg:]" in the help string for -pcidevice. (Ironically, libvirt will not be modified to support specification of domain for -pcidevice, since any qemu new enough for us to care about also supports "-device pci-assign" or "-device vfio-pci", which are greatly preferred).
132 lines
4.0 KiB
Plaintext
132 lines
4.0 KiB
Plaintext
<qemuCaps>
|
|
<flag name='vnc-colon'/>
|
|
<flag name='no-reboot'/>
|
|
<flag name='drive'/>
|
|
<flag name='name'/>
|
|
<flag name='uuid'/>
|
|
<flag name='vnet-hdr'/>
|
|
<flag name='migrate-qemu-tcp'/>
|
|
<flag name='migrate-qemu-exec'/>
|
|
<flag name='drive-cache-v2'/>
|
|
<flag name='drive-format'/>
|
|
<flag name='vga'/>
|
|
<flag name='0.10'/>
|
|
<flag name='mem-path'/>
|
|
<flag name='drive-serial'/>
|
|
<flag name='migrate-qemu-unix'/>
|
|
<flag name='chardev'/>
|
|
<flag name='enable-kvm'/>
|
|
<flag name='monitor-json'/>
|
|
<flag name='balloon'/>
|
|
<flag name='device'/>
|
|
<flag name='sdl'/>
|
|
<flag name='smp-topology'/>
|
|
<flag name='netdev'/>
|
|
<flag name='rtc'/>
|
|
<flag name='vhost-net'/>
|
|
<flag name='no-hpet'/>
|
|
<flag name='no-kvm-pit'/>
|
|
<flag name='pci-configfd'/>
|
|
<flag name='nodefconfig'/>
|
|
<flag name='boot-menu'/>
|
|
<flag name='fsdev'/>
|
|
<flag name='name-process'/>
|
|
<flag name='drive-readonly'/>
|
|
<flag name='smbios-type'/>
|
|
<flag name='vga-qxl'/>
|
|
<flag name='spice'/>
|
|
<flag name='vga-none'/>
|
|
<flag name='migrate-qemu-fd'/>
|
|
<flag name='boot-index'/>
|
|
<flag name='hda-duplex'/>
|
|
<flag name='drive-aio'/>
|
|
<flag name='pci-multibus'/>
|
|
<flag name='pci-bootindex'/>
|
|
<flag name='ccid-emulated'/>
|
|
<flag name='ccid-passthru'/>
|
|
<flag name='chardev-spicevmc'/>
|
|
<flag name='virtio-tx-alg'/>
|
|
<flag name='device-qxl-vga'/>
|
|
<flag name='pci-multifunction'/>
|
|
<flag name='virtio-blk-pci.ioeventfd'/>
|
|
<flag name='sga'/>
|
|
<flag name='virtio-blk-pci.event_idx'/>
|
|
<flag name='virtio-net-pci.event_idx'/>
|
|
<flag name='cache-directsync'/>
|
|
<flag name='piix3-usb-uhci'/>
|
|
<flag name='piix4-usb-uhci'/>
|
|
<flag name='usb-ehci'/>
|
|
<flag name='ich9-usb-ehci1'/>
|
|
<flag name='vt82c686b-usb-uhci'/>
|
|
<flag name='pci-ohci'/>
|
|
<flag name='usb-hub'/>
|
|
<flag name='no-shutdown'/>
|
|
<flag name='cache-unsafe'/>
|
|
<flag name='rombar'/>
|
|
<flag name='ich9-ahci'/>
|
|
<flag name='no-acpi'/>
|
|
<flag name='fsdev-readonly'/>
|
|
<flag name='virtio-blk-pci.scsi'/>
|
|
<flag name='blk-sg-io'/>
|
|
<flag name='drive-copy-on-read'/>
|
|
<flag name='cpu-host'/>
|
|
<flag name='fsdev-writeout'/>
|
|
<flag name='drive-iotune'/>
|
|
<flag name='system_wakeup'/>
|
|
<flag name='scsi-disk.channel'/>
|
|
<flag name='scsi-block'/>
|
|
<flag name='transaction'/>
|
|
<flag name='block-job-async'/>
|
|
<flag name='scsi-cd'/>
|
|
<flag name='ide-cd'/>
|
|
<flag name='no-user-config'/>
|
|
<flag name='hda-micro'/>
|
|
<flag name='dump-guest-memory'/>
|
|
<flag name='nec-usb-xhci'/>
|
|
<flag name='balloon-event'/>
|
|
<flag name='bridge'/>
|
|
<flag name='lsi'/>
|
|
<flag name='virtio-scsi-pci'/>
|
|
<flag name='blockio'/>
|
|
<flag name='disable-s3'/>
|
|
<flag name='disable-s4'/>
|
|
<flag name='ide-drive.wwn'/>
|
|
<flag name='scsi-disk.wwn'/>
|
|
<flag name='seccomp-sandbox'/>
|
|
<flag name='dump-guest-core'/>
|
|
<flag name='seamless-migration'/>
|
|
<flag name='block-commit'/>
|
|
<flag name='vnc'/>
|
|
<flag name='drive-mirror'/>
|
|
<flag name='usb-host.bootindex'/>
|
|
<flag name='blockdev-snapshot-sync'/>
|
|
<flag name='qxl'/>
|
|
<flag name='VGA'/>
|
|
<flag name='cirrus-vga'/>
|
|
<flag name='vmware-svga'/>
|
|
<flag name='usb-serial'/>
|
|
<flag name='usb-net'/>
|
|
<flag name='add-fd'/>
|
|
<flag name='nbd-server'/>
|
|
<flag name='virtio-rng'/>
|
|
<flag name='rng-random'/>
|
|
<flag name='rng-egd'/>
|
|
<flag name='dtb'/>
|
|
<flag name='megasas'/>
|
|
<flag name='ipv6-migration'/>
|
|
<flag name='machine-opt'/>
|
|
<flag name='machine-usb-opt'/>
|
|
<flag name='pci-bridge'/>
|
|
<flag name='vfio-pci'/>
|
|
<flag name='scsi-generic'/>
|
|
<flag name='scsi-generic.bootindex'/>
|
|
<flag name='vnc-websocket'/>
|
|
<flag name='vnc-share-policy'/>
|
|
<flag name='dmi-to-pci-bridge'/>
|
|
<flag name='usb-storage'/>
|
|
<flag name='usb-storage.removable'/>
|
|
<flag name='kvm-pit-lost-tick-policy'/>
|
|
<flag name='usb-kbd'/>
|
|
<flag name='host-pci-multidomain'/>
|
|
</qemuCaps>
|