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

Cole Robinson posted 18 patches 5 years, 3 months ago
Only 17 patches received!
There is a newer version of this series
docs/formatdomain.html.in                     |    39 +-
docs/schemas/domaincommon.rng                 |    60 +-
src/conf/domain_capabilities.c                |     1 +
src/conf/domain_capabilities.h                |     1 +
src/conf/domain_conf.c                        |   216 +-
src/conf/domain_conf.h                        |    68 +-
src/libvirt_private.syms                      |     5 +
src/libxl/libxl_conf.c                        |     2 +
src/qemu/qemu_capabilities.c                  |    55 +
src/qemu/qemu_capabilities.h                  |    28 +
src/qemu/qemu_command.c                       |   219 +-
src/qemu/qemu_domain.c                        |    47 +-
src/qemu/qemu_domain_address.c                |    69 +-
src/qemu/qemu_driver.c                        |     9 +-
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                                 |     4 +-
.../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                     |     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                     |  1404 +
tests/qemucapabilitiestest.c                  |     1 +
.../virtio-non-transitional.x86_64-3.1.0.args |    63 +
...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                       |    17 +
59 files changed, 26031 insertions(+), 112 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-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 00/18] qemu: virtio-{non-}transitional support
Posted by Cole Robinson 5 years, 3 months ago
This series adds 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
Previous incomplete RFC here:
https://www.redhat.com/archives/libvir-list/2019-January/msg00346.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.

Here's the breakdown. 'standard names' here means the model names
virtio, virtio-transitional, and virtio-non-transitional

* Simply extended:
virtio-rng: extend existing <rng model=X> to handle standard names
vhost-vsock: extend existing <vsock model=X> to handle standard names
virtio-memballoon: extend existings <memballoon model=X> to handle
    standard names
virtio-net: extend existing qemu <model type=X> handling to
    support standard names

* Extended with caveats:
virtio-serial: extend <controller type='virtio-serial'> to handle
    existing model=X attribute, with standard names
virtio-scsi: extend <controller type='scsi' model=X> to handle the
    additional names virtio-transitional and virtio-non-transitional.
    model= already supports virtio-scsi here which is a departure from
    just model='virtio' which most others use, but I chose to not
    extend that pattern and stick with the names the other devices
    are using
vhost-scsi: extend <hostdev model=X> handling for the protocol=vhost
    case, to accept standard names. I stuck with standard names over
    using vhost-transitional or similar, for consistency with other
    devices.

* New XML elements
virtio-blk: add new <disk model=X/> attribute with standard names
virtio-fs: add new <filesystem model=X> attribute with standard names
virtio-input-host: add new <input model=X> attribute with
    standard names

At the end is an extension to domaincapabilities to report the
disk bus model values. Until domaincapabilities is fully fleshed
out with support for all the above devices, apps can use that
disk model check to assume transitional devices are available
for all of the above.

Cole Robinson (18):
  tests: Add capabilities data for QEMU 4.0.0 x86_64
  conf: Add <disk model='virtio-{non-}transitional'/>
  qemu: Support disk model=virtio-{non-}transitional
  conf: Add virDomainNetHasVirtioModel
  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-{non-}transitional'/>
  qemu: Support filesystem model=virtio-{non-}transitional
  qemu: Move memballoon validation out of command.c
  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 scsi controller model=virtio-{non-}transitional
  qemu: Support virtio-serial controller model=virtio-{non-}transitional
  qemu: domcaps: Report disk <enum name="model">

 docs/formatdomain.html.in                     |    39 +-
 docs/schemas/domaincommon.rng                 |    60 +-
 src/conf/domain_capabilities.c                |     1 +
 src/conf/domain_capabilities.h                |     1 +
 src/conf/domain_conf.c                        |   216 +-
 src/conf/domain_conf.h                        |    68 +-
 src/libvirt_private.syms                      |     5 +
 src/libxl/libxl_conf.c                        |     2 +
 src/qemu/qemu_capabilities.c                  |    55 +
 src/qemu/qemu_capabilities.h                  |    28 +
 src/qemu/qemu_command.c                       |   219 +-
 src/qemu/qemu_domain.c                        |    47 +-
 src/qemu/qemu_domain_address.c                |    69 +-
 src/qemu/qemu_driver.c                        |     9 +-
 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                                 |     4 +-
 .../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                     |     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                     |  1404 +
 tests/qemucapabilitiestest.c                  |     1 +
 .../virtio-non-transitional.x86_64-3.1.0.args |    63 +
 ...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                       |    17 +
 59 files changed, 26031 insertions(+), 112 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-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
[libvirt] [PATCH 01/18] tests: Add capabilities data for QEMU 4.0.0 x86_64
Posted by Cole Robinson 5 years, 3 months ago
The next release of QEMU is going to be 4.0.0. A bit early, but
this adds capabilities data for x86_64 from current qemu git
15bede554162dda822cd762c689edb6fa32b6e3b

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 .../caps_4.0.0.x86_64.replies                 | 23180 ++++++++++++++++
 .../caps_4.0.0.x86_64.xml                     |  1384 +
 tests/qemucapabilitiestest.c                  |     1 +
 3 files changed, 24565 insertions(+)
 create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies
 create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 01/18] tests: Add capabilities data for QEMU 4.0.0 x86_64
Posted by Andrea Bolognani 5 years, 3 months ago
On Thu, 2019-01-17 at 12:52 -0500, Cole Robinson wrote:
> The next release of QEMU is going to be 4.0.0. A bit early, but
> this adds capabilities data for x86_64 from current qemu git
> 15bede554162dda822cd762c689edb6fa32b6e3b
> 
> Signed-off-by: Cole Robinson <crobinso@redhat.com>
> ---
>  .../caps_4.0.0.x86_64.replies                 | 23180 ++++++++++++++++
>  .../caps_4.0.0.x86_64.xml                     |  1384 +
>  tests/qemucapabilitiestest.c                  |     1 +
>  3 files changed, 24565 insertions(+)
>  create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies
>  create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml

This would be

  https://github.com/crobinso/libvirt/commit/164b87cd146fd341dc3e0a4415c3245557f48f7a

Reviewed-by: Andrea Bolognani <abologna@redhat.com>

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 01/18] tests: Add capabilities data for QEMU 4.0.0 x86_64
Posted by Cole Robinson 5 years, 3 months ago
On 01/18/2019 04:43 AM, Andrea Bolognani wrote:
> On Thu, 2019-01-17 at 12:52 -0500, Cole Robinson wrote:
>> The next release of QEMU is going to be 4.0.0. A bit early, but
>> this adds capabilities data for x86_64 from current qemu git
>> 15bede554162dda822cd762c689edb6fa32b6e3b
>>
>> Signed-off-by: Cole Robinson <crobinso@redhat.com>
>> ---
>>  .../caps_4.0.0.x86_64.replies                 | 23180 ++++++++++++++++
>>  .../caps_4.0.0.x86_64.xml                     |  1384 +
>>  tests/qemucapabilitiestest.c                  |     1 +
>>  3 files changed, 24565 insertions(+)
>>  create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies
>>  create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> 
> This would be
> 
>   https://github.com/crobinso/libvirt/commit/164b87cd146fd341dc3e0a4415c3245557f48f7a
> 
> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
> 

Thanks, I've pushed this one now so next posting I don't need to deal
with the sending issues

- Cole

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 01/18] tests: Add capabilities data for QEMU 4.0.0 x86_64
Posted by Cole Robinson 5 years, 3 months ago
On 01/17/2019 12:52 PM, Cole Robinson wrote:
> The next release of QEMU is going to be 4.0.0. A bit early, but
> this adds capabilities data for x86_64 from current qemu git
> 15bede554162dda822cd762c689edb6fa32b6e3b
> 
> Signed-off-by: Cole Robinson <crobinso@redhat.com>
> ---
>   .../caps_4.0.0.x86_64.replies                 | 23180 ++++++++++++++++
>   .../caps_4.0.0.x86_64.xml                     |  1384 +
>   tests/qemucapabilitiestest.c                  |     1 +
>   3 files changed, 24565 insertions(+)
>   create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.replies
>   create mode 100644 tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
> 

Snipped so it didn't get caught by the list. Full patch attached

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