[libvirt PATCH v3 5/5] qemu: enable asynchronous teardown on s390x hosts by default

Thomas Huth thuth at redhat.com
Wed Jul 5 06:45:36 UTC 2023


On 05/07/2023 08.20, Boris Fiuczynski wrote:
> Enable by default asynchronous teardown on S390 hosts and add tests for
> asynchronous teardown autogeneration support.
> On S390 hosts, Secure Execution guests can take a long time to shutdown,
> since the memory cleanup can take a long time. Since there is no
> practical way to determine whether a S390 guest is running in Secure
> Execution mode, and since the asynchronous teardown does not impact
> normal (not Secure Execution) guests or guests without large memory
> configurations, we enable asynchronous teardown by default on S390.
> A user can select to override the default in the guest domain XML.
> 
> Signed-off-by: Boris Fiuczynski <fiuczy at linux.ibm.com>
> ---
>   src/qemu/qemu_domain.c                        | 19 +++++++++++
>   .../qemuhotplug-base-ccw-live+ccw-virtio.xml  |  1 +
>   ...with-2-ccw-virtio+ccw-virtio-1-reverse.xml |  1 +
>   ...otplug-base-ccw-live-with-2-ccw-virtio.xml |  1 +
>   ...-with-ccw-virtio+ccw-virtio-2-explicit.xml |  1 +
>   ...-ccw-live-with-ccw-virtio+ccw-virtio-2.xml |  1 +
>   ...uhotplug-base-ccw-live-with-ccw-virtio.xml |  1 +
>   .../qemuhotplug-base-ccw-live.xml             |  1 +
>   .../balloon-ccw-deflate.s390x-latest.args     |  1 +
>   .../console-sclp.s390x-latest.args            |  1 +
>   .../console-virtio-ccw.s390x-latest.args      |  1 +
>   .../cpu-s390-features.s390x-latest.args       |  1 +
>   .../cpu-s390-zEC12.s390x-latest.args          |  1 +
>   ...default-video-type-s390x.s390x-latest.args |  1 +
>   .../disk-error-policy-s390x.s390x-latest.args |  1 +
>   .../disk-virtio-ccw-many.s390x-latest.args    |  1 +
>   .../disk-virtio-ccw.s390x-latest.args         |  1 +
>   .../disk-virtio-s390-zpci.s390x-latest.args   |  1 +
>   .../fs9p-ccw.s390x-latest.args                |  1 +
>   ...tdev-scsi-vhost-scsi-ccw.s390x-latest.args |  1 +
>   ...tdev-subsys-mdev-vfio-ap.s390x-latest.args |  1 +
>   ...ubsys-mdev-vfio-ccw-boot.s390x-latest.args |  1 +
>   ...dev-subsys-mdev-vfio-ccw.s390x-latest.args |  1 +
>   ...o-zpci-autogenerate-fids.s390x-latest.args |  1 +
>   ...o-zpci-autogenerate-uids.s390x-latest.args |  1 +
>   ...v-vfio-zpci-autogenerate.s390x-latest.args |  1 +
>   ...dev-vfio-zpci-boundaries.s390x-latest.args |  1 +
>   ...vfio-zpci-ccw-memballoon.s390x-latest.args |  1 +
>   ...io-zpci-multidomain-many.s390x-latest.args |  1 +
>   .../hostdev-vfio-zpci.s390x-latest.args       |  1 +
>   .../input-virtio-ccw.s390x-latest.args        |  1 +
>   ...othreads-virtio-scsi-ccw.s390x-latest.args |  1 +
>   .../launch-security-s390-pv.s390x-latest.args |  1 +
>   ...chine-aeskeywrap-off-cap.s390x-latest.args |  1 +
>   ...hine-aeskeywrap-off-caps.s390x-latest.args |  1 +
>   ...achine-aeskeywrap-on-cap.s390x-latest.args |  1 +
>   ...chine-aeskeywrap-on-caps.s390x-latest.args |  1 +
>   ...chine-deakeywrap-off-cap.s390x-latest.args |  1 +
>   ...hine-deakeywrap-off-caps.s390x-latest.args |  1 +
>   ...achine-deakeywrap-on-cap.s390x-latest.args |  1 +
>   ...chine-deakeywrap-on-caps.s390x-latest.args |  1 +
>   ...achine-keywrap-none-caps.s390x-latest.args |  1 +
>   .../machine-keywrap-none.s390x-latest.args    |  1 +
>   ...machine-loadparm-hostdev.s390x-latest.args |  1 +
>   ...multiple-disks-nets-s390.s390x-latest.args |  1 +
>   ...achine-loadparm-net-s390.s390x-latest.args |  1 +
>   .../machine-loadparm-s390.s390x-latest.args   |  1 +
>   .../net-virtio-ccw.s390x-latest.args          |  1 +
>   ...low-bogus-usb-controller.s390x-latest.args |  1 +
>   ...390-allow-bogus-usb-none.s390x-latest.args |  1 +
>   ...t-cpu-kvm-ccw-virtio-2.7.s390x-latest.args |  1 +
>   ...t-cpu-kvm-ccw-virtio-4.2.s390x-latest.args |  1 +
>   ...t-cpu-tcg-ccw-virtio-2.7.s390x-latest.args |  1 +
>   ...t-cpu-tcg-ccw-virtio-4.2.s390x-latest.args |  1 +
>   ...no-async-teardown-autogen.s390x-6.0.0.args | 32 ++++++++++++++++++
>   ...o-async-teardown-autogen.s390x-latest.args | 33 +++++++++++++++++++
>   .../s390-no-async-teardown-autogen.xml        | 18 ++++++++++
>   .../s390-panic-missing.s390x-latest.args      |  1 +
>   .../s390-panic-no-address.s390x-latest.args   |  1 +
>   .../s390-serial-2.s390x-latest.args           |  1 +
>   .../s390-serial-console.s390x-latest.args     |  1 +
>   .../s390-serial.s390x-latest.args             |  1 +
>   .../s390x-ccw-graphics.s390x-latest.args      |  1 +
>   .../s390x-ccw-headless.s390x-latest.args      |  1 +
>   .../vhost-vsock-ccw-auto.s390x-latest.args    |  1 +
>   .../vhost-vsock-ccw-iommu.s390x-latest.args   |  1 +
>   .../vhost-vsock-ccw-iommu.xml                 |  3 ++
>   .../vhost-vsock-ccw.s390x-latest.args         |  1 +
>   .../video-virtio-gpu-ccw.s390x-latest.args    |  1 +
>   .../virtio-rng-ccw.s390x-latest.args          |  1 +
>   .../watchdog-diag288.s390x-latest.args        |  1 +
>   tests/qemuxml2argvtest.c                      |  2 ++
>   .../default-video-type-s390x.s390x-latest.xml |  3 ++
>   .../disk-virtio-s390-zpci.s390x-latest.xml    |  3 ++
>   ...stdev-scsi-vhost-scsi-ccw.s390x-latest.xml |  3 ++
>   ...stdev-subsys-mdev-vfio-ap.s390x-latest.xml |  3 ++
>   ...subsys-mdev-vfio-ccw-boot.s390x-latest.xml |  3 ++
>   ...tdev-subsys-mdev-vfio-ccw.s390x-latest.xml |  3 ++
>   ...io-zpci-autogenerate-fids.s390x-latest.xml |  3 ++
>   ...io-zpci-autogenerate-uids.s390x-latest.xml |  3 ++
>   ...ev-vfio-zpci-autogenerate.s390x-latest.xml |  3 ++
>   ...tdev-vfio-zpci-boundaries.s390x-latest.xml |  3 ++
>   ...-vfio-zpci-ccw-memballoon.s390x-latest.xml |  3 ++
>   ...fio-zpci-multidomain-many.s390x-latest.xml |  3 ++
>   .../hostdev-vfio-zpci.s390x-latest.xml        |  3 ++
>   .../input-virtio-ccw.s390x-latest.xml         |  3 ++
>   ...iothreads-disk-virtio-ccw.s390x-latest.xml |  3 ++
>   ...iothreads-virtio-scsi-ccw.s390x-latest.xml |  3 ++
>   .../machine-loadparm-hostdev.s390x-latest.xml |  3 ++
>   ...-multiple-disks-nets-s390.s390x-latest.xml |  3 ++
>   ...lt-cpu-kvm-ccw-virtio-2.7.s390x-latest.xml |  3 ++
>   ...lt-cpu-kvm-ccw-virtio-4.2.s390x-latest.xml |  3 ++
>   ...lt-cpu-tcg-ccw-virtio-2.7.s390x-latest.xml |  3 ++
>   ...lt-cpu-tcg-ccw-virtio-4.2.s390x-latest.xml |  3 ++
>   .../s390-defaultconsole.s390x-latest.xml      |  3 ++
>   ...-no-async-teardown-autogen.s390x-6.0.0.xml | 25 ++++++++++++++
>   ...no-async-teardown-autogen.s390x-latest.xml | 28 ++++++++++++++++
>   .../s390-panic-missing.s390x-latest.xml       |  3 ++
>   .../s390-panic-no-address.s390x-latest.xml    |  3 ++
>   .../s390-panic.s390x-latest.xml               |  3 ++
>   .../s390-serial-2.s390x-latest.xml            |  3 ++
>   .../s390-serial-console.s390x-latest.xml      |  3 ++
>   .../s390-serial.s390x-latest.xml              |  3 ++
>   .../s390x-ccw-graphics.s390x-latest.xml       |  3 ++
>   .../s390x-ccw-headless.s390x-latest.xml       |  3 ++
>   .../vhost-vsock-ccw-auto.s390x-latest.xml     |  3 ++
>   .../vhost-vsock-ccw.s390x-latest.xml          |  3 ++
>   ...video-virtio-gpu-ccw-auto.s390x-latest.xml |  3 ++
>   .../video-virtio-gpu-ccw.s390x-latest.xml     |  3 ++
>   tests/qemuxml2xmltest.c                       |  2 ++
>   110 files changed, 333 insertions(+)
>   create mode 100644 tests/qemuxml2argvdata/s390-no-async-teardown-autogen.s390x-6.0.0.args
>   create mode 100644 tests/qemuxml2argvdata/s390-no-async-teardown-autogen.s390x-latest.args
>   create mode 100644 tests/qemuxml2argvdata/s390-no-async-teardown-autogen.xml
>   create mode 100644 tests/qemuxml2xmloutdata/s390-no-async-teardown-autogen.s390x-6.0.0.xml
>   create mode 100644 tests/qemuxml2xmloutdata/s390-no-async-teardown-autogen.s390x-latest.xml
> 
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 94587638c3..884f1599b4 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -4402,6 +4402,18 @@ qemuDomainDefEnableDefaultFeatures(virDomainDef *def,
>            * capabilities, we still want to enable this */
>           def->features[VIR_DOMAIN_FEATURE_GIC] = VIR_TRISTATE_SWITCH_ON;
>       }
> +
> +    /* Enabled asynchronous teardown by default on S390 hosts as Secure
> +     * Execution guests can take a long time to shutdown, since the memory
> +     * cleanup can take a long time. Since there is no üractical way to

s/üractical/practical/

With the typo fixed:
Reviewed-by: Thomas Huth <thuth at redhat.com>



More information about the libvir-list mailing list