[libvirt] [PATCH 0/6] RFC: qemu: virtio-{non-}transitional support

Cole Robinson crobinso at redhat.com
Sun Jan 13 23:12:02 UTC 2019


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




More information about the libvir-list mailing list