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

Cole Robinson posted 17 patches 5 years, 2 months ago
Test syntax-check passed
Failed in applying to current master (apply log)
docs/formatdomain.html.in                     |  97 ++++++++-
docs/schemas/domaincommon.rng                 |  61 +++++-
src/conf/domain_capabilities.c                |   1 +
src/conf/domain_capabilities.h                |   1 +
src/conf/domain_conf.c                        | 184 ++++++++++++++++--
src/conf/domain_conf.h                        |  63 ++++++
src/libvirt_private.syms                      |   4 +
src/libxl/libxl_conf.c                        |   2 +
src/qemu/qemu_capabilities.c                  |  31 +++
src/qemu/qemu_capabilities.h                  |   1 +
src/qemu/qemu_command.c                       | 150 ++++++++++++--
src/qemu/qemu_domain.c                        |  17 +-
src/qemu/qemu_domain_address.c                | 110 +++++++++--
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                     | 153 +++++++++++++++
tests/domaincapstest.c                        |   4 +
.../caps_4.0.0.riscv32.xml                    |   1 +
.../caps_4.0.0.riscv64.xml                    |   1 +
.../caps_4.0.0.x86_64.xml                     |   1 +
.../virtio-non-transitional.x86_64-3.1.0.args |  65 +++++++
...virtio-non-transitional.x86_64-latest.args |  62 ++++++
.../virtio-non-transitional.xml               |  39 ++++
.../virtio-transitional.x86_64-3.1.0.args     |  56 ++++++
.../virtio-transitional.x86_64-latest.args    |  52 +++++
.../qemuxml2argvdata/virtio-transitional.xml  |  39 ++++
tests/qemuxml2argvtest.c                      |   6 +
.../virtio-non-transitional.xml               | 121 ++++++++++++
.../virtio-transitional.xml                   |  80 ++++++++
tests/qemuxml2xmltest.c                       |  17 ++
53 files changed, 1470 insertions(+), 50 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 v3 00/17] qemu: virtio-{non-}transitional support
Posted by Cole Robinson 5 years, 2 months ago
v2 libvirt patches:
https://www.redhat.com/archives/libvir-list/2019-January/msg00877.html
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

Changes since v2:
* Some prep patches merged
* filesystem model dropped the -9p naming, now uses virtio-{non-}transitional
  like other devices
* Now uses a single capability QEMU_CAPS_VIRTIO_PCI_NON_TRANSITIONAL
  which is set whenever any of the -transitional or -non-transitional
  devices are present.
* Add a formatdomain section 'Virtio transitional devices' and reference
  it from each relevant device section
* if virtio-transitional specified, and qemu is too old but has the
  disable_X options, convert it to explicit
  disable-legacy=off,disable-modern=off
* Misc small changes pointed out in review

Thanks,
Cole

Cole Robinson (17):
  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-{non-}transitional'/>
  qemu: Support filesystem model=virtio-{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                     |  97 ++++++++-
 docs/schemas/domaincommon.rng                 |  61 +++++-
 src/conf/domain_capabilities.c                |   1 +
 src/conf/domain_capabilities.h                |   1 +
 src/conf/domain_conf.c                        | 184 ++++++++++++++++--
 src/conf/domain_conf.h                        |  63 ++++++
 src/libvirt_private.syms                      |   4 +
 src/libxl/libxl_conf.c                        |   2 +
 src/qemu/qemu_capabilities.c                  |  31 +++
 src/qemu/qemu_capabilities.h                  |   1 +
 src/qemu/qemu_command.c                       | 150 ++++++++++++--
 src/qemu/qemu_domain.c                        |  17 +-
 src/qemu/qemu_domain_address.c                | 110 +++++++++--
 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                     | 153 +++++++++++++++
 tests/domaincapstest.c                        |   4 +
 .../caps_4.0.0.riscv32.xml                    |   1 +
 .../caps_4.0.0.riscv64.xml                    |   1 +
 .../caps_4.0.0.x86_64.xml                     |   1 +
 .../virtio-non-transitional.x86_64-3.1.0.args |  65 +++++++
 ...virtio-non-transitional.x86_64-latest.args |  62 ++++++
 .../virtio-non-transitional.xml               |  39 ++++
 .../virtio-transitional.x86_64-3.1.0.args     |  56 ++++++
 .../virtio-transitional.x86_64-latest.args    |  52 +++++
 .../qemuxml2argvdata/virtio-transitional.xml  |  39 ++++
 tests/qemuxml2argvtest.c                      |   6 +
 .../virtio-non-transitional.xml               | 121 ++++++++++++
 .../virtio-transitional.xml                   |  80 ++++++++
 tests/qemuxml2xmltest.c                       |  17 ++
 53 files changed, 1470 insertions(+), 50 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 v3 00/17] qemu: virtio-{non-}transitional support
Posted by Andrea Bolognani 5 years, 2 months ago
On Fri, 2019-02-08 at 17:11 -0500, Cole Robinson wrote:
> v2 libvirt patches:
> https://www.redhat.com/archives/libvir-list/2019-January/msg00877.html
> 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
> 
> Changes since v2:
> * Some prep patches merged
> * filesystem model dropped the -9p naming, now uses virtio-{non-}transitional
>   like other devices
> * Now uses a single capability QEMU_CAPS_VIRTIO_PCI_NON_TRANSITIONAL
>   which is set whenever any of the -transitional or -non-transitional
>   devices are present.
> * Add a formatdomain section 'Virtio transitional devices' and reference
>   it from each relevant device section
> * if virtio-transitional specified, and qemu is too old but has the
>   disable_X options, convert it to explicit
>   disable-legacy=off,disable-modern=off
> * Misc small changes pointed out in review

Oh, and this definitely deserves to be mentioned in the release
notes! Can you please post a 18/17 or a separate patch that adds
the corresponding entry?

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v3 00/17] qemu: virtio-{non-}transitional support
Posted by Cole Robinson 5 years, 1 month ago
On 2/13/19 3:31 AM, Andrea Bolognani wrote:
> On Fri, 2019-02-08 at 17:11 -0500, Cole Robinson wrote:
>> v2 libvirt patches:
>> https://www.redhat.com/archives/libvir-list/2019-January/msg00877.html
>> 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
>>
>> Changes since v2:
>> * Some prep patches merged
>> * filesystem model dropped the -9p naming, now uses virtio-{non-}transitional
>>   like other devices
>> * Now uses a single capability QEMU_CAPS_VIRTIO_PCI_NON_TRANSITIONAL
>>   which is set whenever any of the -transitional or -non-transitional
>>   devices are present.
>> * Add a formatdomain section 'Virtio transitional devices' and reference
>>   it from each relevant device section
>> * if virtio-transitional specified, and qemu is too old but has the
>>   disable_X options, convert it to explicit
>>   disable-legacy=off,disable-modern=off
>> * Misc small changes pointed out in review
> 

Thanks for the reviews, I fixed all the issues you pointed out and
pushed the patches here:

https://github.com/crobinso/libvirt/tree/virtio-v4

I'll wait to push until after 5.2.0 is out, so we have a longer window
to tweak things if eduardo's responses change anything, and to discuss
the controller type=scsi model=virtio patch I think you have pending...

> Oh, and this definitely deserves to be mentioned in the release
> notes! Can you please post a 18/17 or a separate patch that adds
> the corresponding entry?
> 

I'll send one after I push the commits

Thanks,
Cole

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v3 00/17] qemu: virtio-{non-}transitional support
Posted by Cole Robinson 5 years, 1 month ago
On 2/20/19 3:46 PM, Cole Robinson wrote:
> On 2/13/19 3:31 AM, Andrea Bolognani wrote:
>> On Fri, 2019-02-08 at 17:11 -0500, Cole Robinson wrote:
>>> v2 libvirt patches:
>>> https://www.redhat.com/archives/libvir-list/2019-January/msg00877.html
>>> 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
>>>
>>> Changes since v2:
>>> * Some prep patches merged
>>> * filesystem model dropped the -9p naming, now uses virtio-{non-}transitional
>>>   like other devices
>>> * Now uses a single capability QEMU_CAPS_VIRTIO_PCI_NON_TRANSITIONAL
>>>   which is set whenever any of the -transitional or -non-transitional
>>>   devices are present.
>>> * Add a formatdomain section 'Virtio transitional devices' and reference
>>>   it from each relevant device section
>>> * if virtio-transitional specified, and qemu is too old but has the
>>>   disable_X options, convert it to explicit
>>>   disable-legacy=off,disable-modern=off
>>> * Misc small changes pointed out in review
>>
> 
> Thanks for the reviews, I fixed all the issues you pointed out and
> pushed the patches here:
> 
> https://github.com/crobinso/libvirt/tree/virtio-v4
> 
> I'll wait to push until after 5.2.0 is out, so we have a longer window
> to tweak things if eduardo's responses change anything, and to discuss
> the controller type=scsi model=virtio patch I think you have pending...
> 

I meant version 5.1.0

- Cole

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