This series adds the beginnings of support for virtio-transitional
and virtio-non-transitional qemu devices.
qemu patches, queued for qemu 4.0.0:
https://lists.gnu.org/archive/html/qemu-devel/2018-12/msg00923.html
Previous libvirt discussion around this:
https://www.redhat.com/archives/libvir-list/2018-August/msg01073.html
Long story short we need to expose these options so apps have a
usable way to support rhel6 + virtio + q35.
This series only covers exposing the associated device models
for disk and rng devices to make sure I'm on the right track.
serial, net, scsi, input-host, balloon 9p, vsock, vhost-scsi
still need to be implemented. Those should follow the rng
example, except vhost-scsi may need to be a different approach.
The main RFC bits here are:
* The disk approach. danpb and I briefly discussed on IRC adding
new bus= values vs a new model= attribute. We decided model=
is the lesser of two evils, since bus= handling in apps is
tied with target= generation, so adding new virtio-X bus=
values will cause more work for apps. These patches add
a <disk model=X/> attribute
* The XML and naming. Previous discussions seemed to favor adding
new model-style values rather than a 'transitional' attribute
or similar. So these patches add model='virtio-transitional'
and model='virtio-non-transitional'
* The PCI address handling. I just mapped virtio-non-transitional
to imply plain PCI addressing. I think that's all we need but
I'm not positive so I'd appreciate a review of that approach.
Cole Robinson (6):
tests: Add capabilities data for QEMU 4.0.0 x86_64
tests: qemuxml2xml: Add basic DO_TEST_CAPS impl
conf: Add <disk model='virtio-{non-}transitional'/>
qemu: Wire up disk model=virtio-{non-}transitional
qemu: domcaps: Report disk <enum name="model">
qemu: Support rng model=virtio-{non-}transitional
docs/formatdomain.html.in | 10 +
docs/schemas/domaincommon.rng | 14 +-
src/conf/domain_capabilities.c | 1 +
src/conf/domain_capabilities.h | 1 +
src/conf/domain_conf.c | 32 +-
src/conf/domain_conf.h | 12 +
src/libvirt_private.syms | 2 +
src/qemu/qemu_capabilities.c | 17 +
src/qemu/qemu_capabilities.h | 6 +
src/qemu/qemu_command.c | 43 +-
src/qemu/qemu_domain_address.c | 8 +-
.../bhyve_basic.x86_64.xml | 1 +
.../bhyve_fbuf.x86_64.xml | 1 +
.../bhyve_uefi.x86_64.xml | 1 +
tests/domaincapsschemadata/full.xml | 5 +
.../domaincapsschemadata/libxl-xenfv-usb.xml | 1 +
.../domaincapsschemadata/libxl-xenpv-usb.xml | 1 +
.../qemu_1.7.0.x86_64.xml | 1 +
.../qemu_2.12.0-virt.aarch64.xml | 1 +
.../qemu_2.12.0.ppc64.xml | 1 +
.../qemu_2.12.0.s390x.xml | 1 +
.../qemu_2.12.0.x86_64.xml | 1 +
.../qemu_2.6.0-virt.aarch64.xml | 1 +
.../qemu_2.6.0.aarch64.xml | 1 +
.../domaincapsschemadata/qemu_2.6.0.ppc64.xml | 1 +
.../qemu_2.6.0.x86_64.xml | 1 +
.../domaincapsschemadata/qemu_2.7.0.s390x.xml | 1 +
.../qemu_2.8.0-tcg.x86_64.xml | 1 +
.../domaincapsschemadata/qemu_2.8.0.s390x.xml | 1 +
.../qemu_2.8.0.x86_64.xml | 1 +
.../qemu_2.9.0-q35.x86_64.xml | 1 +
.../qemu_2.9.0-tcg.x86_64.xml | 1 +
.../qemu_2.9.0.x86_64.xml | 1 +
.../domaincapsschemadata/qemu_3.0.0.s390x.xml | 1 +
.../qemu_4.0.0.x86_64.xml | 153 +
tests/domaincapstest.c | 4 +
.../caps_4.0.0.x86_64.replies | 23180 ++++++++++++++++
.../caps_4.0.0.x86_64.xml | 1388 +
tests/qemucapabilitiestest.c | 1 +
...virtio-non-transitional.x86_64-latest.args | 37 +
.../virtio-non-transitional.xml | 29 +
.../virtio-transitional.x86_64-latest.args | 37 +
.../qemuxml2argvdata/virtio-transitional.xml | 29 +
tests/qemuxml2argvtest.c | 3 +
.../virtio-non-transitional.xml | 50 +
.../virtio-transitional.xml | 51 +
tests/qemuxml2xmltest.c | 60 +-
47 files changed, 25172 insertions(+), 23 deletions(-)
create mode 100644 tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
create mode 100644 tests/qemuxml2argvdata/virtio-non-transitional.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/virtio-non-transitional.xml
create mode 100644 tests/qemuxml2argvdata/virtio-transitional.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/virtio-transitional.xml
create mode 100644 tests/qemuxml2xmloutdata/virtio-non-transitional.xml
create mode 100644 tests/qemuxml2xmloutdata/virtio-transitional.xml
--
2.20.1