[libvirt] [PATCH v2 00/25] qemu: virtio-{non-}transitional support

Cole Robinson posted 25 patches 5 years, 2 months ago
Test syntax-check passed
Failed in applying to current master (apply log)
There is a newer version of this series
docs/formatdomain.html.in                     |  39 ++-
docs/schemas/domaincommon.rng                 |  61 +++-
src/conf/domain_capabilities.c                |   1 +
src/conf/domain_capabilities.h                |   1 +
src/conf/domain_conf.c                        | 328 ++++++++++++++++--
src/conf/domain_conf.h                        |  67 ++++
src/libvirt_private.syms                      |   6 +
src/libxl/libxl_conf.c                        |   2 +
src/qemu/qemu_capabilities.c                  |  61 ++++
src/qemu/qemu_capabilities.h                  |  28 ++
src/qemu/qemu_command.c                       | 252 +++++++++++---
src/qemu/qemu_domain.c                        |  79 ++++-
src/qemu/qemu_domain_address.c                |  97 ++++--
src/qemu/qemu_driver.c                        |  17 +-
src/qemu/qemu_hotplug.c                       |   2 +-
src/qemu/qemu_interface.c                     |   8 +-
src/qemu/qemu_process.c                       |   3 +-
src/security/virt-aa-helper.c                 |   2 +-
src/vbox/vbox_common.c                        |   2 +
src/vmx/vmx.c                                 |   5 +-
.../bhyve_basic.x86_64.xml                    |   1 +
.../bhyve_fbuf.x86_64.xml                     |   1 +
.../bhyve_uefi.x86_64.xml                     |   1 +
tests/domaincapsschemadata/full.xml           |   6 +
.../domaincapsschemadata/libxl-xenfv-usb.xml  |   1 +
.../domaincapsschemadata/libxl-xenpv-usb.xml  |   1 +
.../qemu_1.7.0.x86_64.xml                     |   3 +
.../qemu_2.12.0-virt.aarch64.xml              |   5 +
.../qemu_2.12.0.ppc64.xml                     |   5 +
.../qemu_2.12.0.s390x.xml                     |   5 +
.../qemu_2.12.0.x86_64.xml                    |   5 +
.../qemu_2.6.0-virt.aarch64.xml               |   5 +
.../qemu_2.6.0.aarch64.xml                    |   5 +
.../domaincapsschemadata/qemu_2.6.0.ppc64.xml |   5 +
.../qemu_2.6.0.x86_64.xml                     |   5 +
.../domaincapsschemadata/qemu_2.7.0.s390x.xml |   5 +
.../qemu_2.8.0-tcg.x86_64.xml                 |   5 +
.../domaincapsschemadata/qemu_2.8.0.s390x.xml |   5 +
.../qemu_2.8.0.x86_64.xml                     |   5 +
.../qemu_2.9.0-q35.x86_64.xml                 |   5 +
.../qemu_2.9.0-tcg.x86_64.xml                 |   5 +
.../qemu_2.9.0.x86_64.xml                     |   5 +
.../domaincapsschemadata/qemu_3.0.0.s390x.xml |   5 +
.../qemu_4.0.0.x86_64.xml                     | 154 ++++++++
tests/domaincapstest.c                        |   4 +
.../caps_4.0.0.x86_64.xml                     |  20 ++
.../virtio-non-transitional.x86_64-3.1.0.args |  65 ++++
...virtio-non-transitional.x86_64-latest.args |  62 ++++
.../virtio-non-transitional.xml               |  40 +++
.../virtio-transitional.x86_64-3.1.0.args     |  50 +++
.../virtio-transitional.x86_64-latest.args    |  52 +++
.../qemuxml2argvdata/virtio-transitional.xml  |  40 +++
tests/qemuxml2argvmock.c                      |   2 +-
tests/qemuxml2argvtest.c                      |   6 +
.../virtio-non-transitional.xml               | 121 +++++++
.../virtio-transitional.xml                   |  80 +++++
tests/qemuxml2xmltest.c                       |  26 +-
57 files changed, 1736 insertions(+), 141 deletions(-)
create mode 100644 tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
create mode 100644 tests/qemuxml2argvdata/virtio-non-transitional.x86_64-3.1.0.args
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-3.1.0.args
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
[libvirt] [PATCH v2 00/25] qemu: virtio-{non-}transitional support
Posted by Cole Robinson 5 years, 2 months ago
v1 libvirt patches:
https://www.redhat.com/archives/libvir-list/2019-January/msg00593.html
Previous incomplete RFC here:
https://www.redhat.com/archives/libvir-list/2019-January/msg00346.html
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 exposes
the new devices as model= values. This required adding new
model= attributes for several devices. See v1 posting for a summary
of the XML changes introduced, mostly it's adding virtio-transitional
and virtio-non-transitional to existing model= enums, and adding
model= XML attributes for devices that don't have them (disk, fs,
input)

Changes from v1:
- <filesystem> models are now named virtio-9p, virtio-9p-transitional,
  virtio-9p-non-transitional. This is to avoid ambiguity as in the near
  future we will likely add virtio-fs <filesystem> support

- Cleanup and prep work is separated into separate patches and front
  loaded into the series.

- qemu caps additions are separated from the qemu_command.c patches,
  and squashed together upfront.

- virDomainDeviceSetData is added to make it easier to compose a
  virDomainDeviceDef on the fly. This is used for the transitional cli
  building but can be useful elsewhere too, but that's for another
  series.

- Lots of small improvements and fixes suggested by Andrea.

Thanks,
Cole

Cole Robinson (25):
  conf: Set net->model earlier
  conf: Add virDomainNetIsVirtioModel
  qemu: Move <memballoon> validation out of qemu_command.c
  qemu: Move <rng> validation out of qemu_command.c
  qemu: command: Make vhost-scsi device string depend on address
  qemu: command: Convert vhost-{vsock,scsi} to qemuBuildVirtioDevStr
  conf: Add virDomainDeviceSetData
  qemu: command: Make BuildVirtioDevStr more generic
  qemu: command: Add qemuCaps to BuildVirtioStr
  qemu: capabilities: Add virtio/vhost {non-}transitional
  conf: Add <disk model='virtio-{non-}transitional'/>
  qemu: Support disk model=virtio-{non-}transitional
  qemu: Support interface model=virtio-{non-}transitional
  conf: Add <hostdev model='virtio-{non-}transitional'/>
  qemu: Support hostdev model=virtio-{non-}transitional
  qemu: Support rng model=virtio-{non-}transitional
  conf: Add <filesystem model='virtio-9p-{non-}transitional'/>
  qemu: Support filesystem model=virtio-9p-{non-}transitional
  qemu: Support memballoon model=virtio-{non-}transitional
  qemu: Support vsock model=virtio-{non-}transitional
  conf: Add <input model='virtio-{non-}transitional'/>
  qemu: Support input model=virtio-{non-}transitional
  qemu: Support virtio-serial controller model=virtio-{non-}transitional
  qemu: Support scsi controller model=virtio-{non-}transitional
  qemu: domcaps: Report disk <enum name="model">

 docs/formatdomain.html.in                     |  39 ++-
 docs/schemas/domaincommon.rng                 |  61 +++-
 src/conf/domain_capabilities.c                |   1 +
 src/conf/domain_capabilities.h                |   1 +
 src/conf/domain_conf.c                        | 328 ++++++++++++++++--
 src/conf/domain_conf.h                        |  67 ++++
 src/libvirt_private.syms                      |   6 +
 src/libxl/libxl_conf.c                        |   2 +
 src/qemu/qemu_capabilities.c                  |  61 ++++
 src/qemu/qemu_capabilities.h                  |  28 ++
 src/qemu/qemu_command.c                       | 252 +++++++++++---
 src/qemu/qemu_domain.c                        |  79 ++++-
 src/qemu/qemu_domain_address.c                |  97 ++++--
 src/qemu/qemu_driver.c                        |  17 +-
 src/qemu/qemu_hotplug.c                       |   2 +-
 src/qemu/qemu_interface.c                     |   8 +-
 src/qemu/qemu_process.c                       |   3 +-
 src/security/virt-aa-helper.c                 |   2 +-
 src/vbox/vbox_common.c                        |   2 +
 src/vmx/vmx.c                                 |   5 +-
 .../bhyve_basic.x86_64.xml                    |   1 +
 .../bhyve_fbuf.x86_64.xml                     |   1 +
 .../bhyve_uefi.x86_64.xml                     |   1 +
 tests/domaincapsschemadata/full.xml           |   6 +
 .../domaincapsschemadata/libxl-xenfv-usb.xml  |   1 +
 .../domaincapsschemadata/libxl-xenpv-usb.xml  |   1 +
 .../qemu_1.7.0.x86_64.xml                     |   3 +
 .../qemu_2.12.0-virt.aarch64.xml              |   5 +
 .../qemu_2.12.0.ppc64.xml                     |   5 +
 .../qemu_2.12.0.s390x.xml                     |   5 +
 .../qemu_2.12.0.x86_64.xml                    |   5 +
 .../qemu_2.6.0-virt.aarch64.xml               |   5 +
 .../qemu_2.6.0.aarch64.xml                    |   5 +
 .../domaincapsschemadata/qemu_2.6.0.ppc64.xml |   5 +
 .../qemu_2.6.0.x86_64.xml                     |   5 +
 .../domaincapsschemadata/qemu_2.7.0.s390x.xml |   5 +
 .../qemu_2.8.0-tcg.x86_64.xml                 |   5 +
 .../domaincapsschemadata/qemu_2.8.0.s390x.xml |   5 +
 .../qemu_2.8.0.x86_64.xml                     |   5 +
 .../qemu_2.9.0-q35.x86_64.xml                 |   5 +
 .../qemu_2.9.0-tcg.x86_64.xml                 |   5 +
 .../qemu_2.9.0.x86_64.xml                     |   5 +
 .../domaincapsschemadata/qemu_3.0.0.s390x.xml |   5 +
 .../qemu_4.0.0.x86_64.xml                     | 154 ++++++++
 tests/domaincapstest.c                        |   4 +
 .../caps_4.0.0.x86_64.xml                     |  20 ++
 .../virtio-non-transitional.x86_64-3.1.0.args |  65 ++++
 ...virtio-non-transitional.x86_64-latest.args |  62 ++++
 .../virtio-non-transitional.xml               |  40 +++
 .../virtio-transitional.x86_64-3.1.0.args     |  50 +++
 .../virtio-transitional.x86_64-latest.args    |  52 +++
 .../qemuxml2argvdata/virtio-transitional.xml  |  40 +++
 tests/qemuxml2argvmock.c                      |   2 +-
 tests/qemuxml2argvtest.c                      |   6 +
 .../virtio-non-transitional.xml               | 121 +++++++
 .../virtio-transitional.xml                   |  80 +++++
 tests/qemuxml2xmltest.c                       |  26 +-
 57 files changed, 1736 insertions(+), 141 deletions(-)
 create mode 100644 tests/domaincapsschemadata/qemu_4.0.0.x86_64.xml
 create mode 100644 tests/qemuxml2argvdata/virtio-non-transitional.x86_64-3.1.0.args
 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-3.1.0.args
 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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 00/25] qemu: virtio-{non-}transitional support
Posted by Cole Robinson 5 years, 2 months ago
On 01/23/2019 04:32 PM, Cole Robinson wrote:
> v1 libvirt patches:
> https://www.redhat.com/archives/libvir-list/2019-January/msg00593.html
> Previous incomplete RFC here:
> https://www.redhat.com/archives/libvir-list/2019-January/msg00346.html
> 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 exposes
> the new devices as model= values. This required adding new
> model= attributes for several devices. See v1 posting for a summary
> of the XML changes introduced, mostly it's adding virtio-transitional
> and virtio-non-transitional to existing model= enums, and adding
> model= XML attributes for devices that don't have them (disk, fs,
> input)
> 
> Changes from v1:
> - <filesystem> models are now named virtio-9p, virtio-9p-transitional,
>   virtio-9p-non-transitional. This is to avoid ambiguity as in the near
>   future we will likely add virtio-fs <filesystem> support
> 
> - Cleanup and prep work is separated into separate patches and front
>   loaded into the series.
> 
> - qemu caps additions are separated from the qemu_command.c patches,
>   and squashed together upfront.
> 
> - virDomainDeviceSetData is added to make it easier to compose a
>   virDomainDeviceDef on the fly. This is used for the transitional cli
>   building but can be useful elsewhere too, but that's for another
>   series.
> 
> - Lots of small improvements and fixes suggested by Andrea.
> 

Forgot to mention, another relevant change is adding disable-modern=off
alongside disable-legacy=on, from the v1 subthread with danpb and ehabkost

Thanks,
Cole

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list