From 2d208de5b86e1a4c6027616b254d01355a9b978f Mon Sep 17 00:00:00 2001 From: eabdullin Date: Mon, 15 Sep 2025 12:17:43 +0000 Subject: [PATCH] import CS libvirt-10.10.0-15.el9 --- ...tion-type-into-virDomainGetGuestInfo.patch | 53 + ...nf-add-deprecated_features-attribute.patch | 280 + ...rough-and-xtsup-attributes-for-IOMMU.patch | 198 + ...uce-support-for-multiple-ACPI-tables.patch | 422 + ...erface-types-with-backend-type-passt.patch | 103 + ...rt-conf-support-MSDM-ACPI-table-type.patch | 119 + ...u_map-Add-GraniteRapids-v2-CPU-model.patch | 669 + ...bvirt-cpu_map-Add-avx10-CPU-features.patch | 51 + ...-Add-sha512-sm3-and-sm4-CPU-features.patch | 46 + ...document-intel-only-IOMMU-attributes.patch | 61 + ...empty-path-URI-component-same-way-as.patch | 49 + ...ent-CA-bundle-for-remote-connections.patch | 119 + ...te-failure-to-lookup-a-single-domain.patch | 63 + ...BILITIES_DISABLE_DEPRECATED_FEATURES.patch | 58 + ...scription-of-the-CPU-frequency-field.patch | 51 + ...libxl-support-rawset-ACPI-table-type.patch | 85 + ...om-virNodeGetInfo-for-virsh-nodeinfo.patch | 55 + ...ree-inhibitor-in-networkStateCleanup.patch | 44 + ...pport-for-VIR_DOMAIN_GUEST_INFO_LOAD.patch | 72 + ...libvirt-qemu-Allow-virtio-mem-on-CCW.patch | 36 + ...DomainCheckCPU-with-unknown-host-CPU.patch | 38 + ...mu-Do-NOT-autoadd-NUMA-node-for-s390.patch | 50 + ...-migration-state-to-TPM-cleanup-code.patch | 135 + ...n-parameter-in-various-TPM-functions.patch | 230 + ...libvirt-qemu-Validate-virtio-mem-ccw.patch | 86 + .../libvirt-qemu-add-IOMMU-model-amd.patch | 337 + ...to-set-TLS-priority-string-with-QEMU.patch | 690 + ...-fix-order-of-VNC-TLS-config-entries.patch | 84 + ...t-qemu-introduce-QEMU_CAPS_AMD_IOMMU.patch | 253 + ...virt-qemu-introduce-QEMU_CAPS_PCI_ID.patch | 4646 ++ ...ect-behave-identically-to-passt-user.patch | 111 + ...tDevStreamDisconnectedEvent-reusable.patch | 119 + ...m-query-cpu-model-expansion-response.patch | 243 + ...un-updated-qemuProcessStartWarnShmem.patch | 94 + ...ecial-for-passt-in-a-helper-function.patch | 110 + ...processNetdevStreamDisconnectedEvent.patch | 56 + ...NETDEV_VHOST_USER_DISCONNECTED-event.patch | 224 + ...-sanitize-blank-lines-in-config-file.patch | 326 + ...g-snapshot-for-VM-with-non-file-disk.patch | 75 + ...rt-qemu-support-MSDM-ACPI-table-type.patch | 108 + ...irt-qemu-support-raw-ACPI-table-type.patch | 218 + ...voke-access-to-file-twice-on-failure.patch | 44 + ...Expansion-refactor-parsing-functions.patch | 100 + ...ile-Fix-NVRAM-image-conversion-check.patch | 67 + ...memory-for-all-vhost-user-interfaces.patch | 62 + ...t-qemu_agent-Add-qemuAgentGetLoadAvg.patch | 163 + ...es-Fetch-caps-for-virtio-mem-ccw-too.patch | 409 + ...ter-deprecated-features-if-requested.patch | 95 + ...y-deprecated-features-for-host-model.patch | 933 + ...duce-QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW.patch | 76 + ...-line-for-virtio-mem-and-virtio-pmem.patch | 95 + ...n_address-fix-CCW-virtio-mem-hotplug.patch | 48 + ...rting-to-external-disk-only-snapshot.patch | 50 + ...fault-cpu-.ccw-virtio-2.7-test-cases.patch | 242 + ...ared-memory-net-vhostuser-test-cases.patch | 144 + ...ory-hotplug-virtio-mem-ccw-s390x.xml.patch | 215 + ...ory-hotplug-virtio-mem-pci-s390x.xml.patch | 228 + ...mucapabilitiesdata-caps_10.0.0_s390x.patch | 534 + ...ysusers-file-to-create-libvirt-group.patch | 56 + ...move-logind-support-for-virNetDaemon.patch | 202 + ...rivers-over-to-new-virInhibitor-APIs.patch | 549 + ...duce-raw-and-rawset-ACPI-table-types.patch | 167 + ...PI-table-types-in-libxl-qemu-drivers.patch | 94 + ...apabilities-for-QEMU-10.0.0-on-s390x.patch | 42185 ++++++++++++++++ ...re-logind-inhibitor-if-not-requested.patch | 52 + ...-fix-off-by-1-in-inhibitor-constants.patch | 46 + ...-for-holding-a-system-inhibitor-lock.patch | 375 + ...-the-case-when-fake-data-is-reported.patch | 47 + ...pport-for-VIR_DOMAIN_GUEST_INFO_LOAD.patch | 71 + ...ce-new-hypervisor-cpu-models-command.patch | 160 + ...ted-features-flag-to-domcapabilities.patch | 79 + SPECS/libvirt.spec | 161 +- 72 files changed, 58615 insertions(+), 1 deletion(-) create mode 100644 SOURCES/libvirt-Add-load-average-information-type-into-virDomainGetGuestInfo.patch create mode 100644 SOURCES/libvirt-conf-add-deprecated_features-attribute.patch create mode 100644 SOURCES/libvirt-conf-add-passthrough-and-xtsup-attributes-for-IOMMU.patch create mode 100644 SOURCES/libvirt-conf-introduce-support-for-multiple-ACPI-tables.patch create mode 100644 SOURCES/libvirt-conf-parse-interface-source-dev-for-all-interface-types-with-backend-type-passt.patch create mode 100644 SOURCES/libvirt-conf-support-MSDM-ACPI-table-type.patch create mode 100644 SOURCES/libvirt-cpu_map-Add-GraniteRapids-v2-CPU-model.patch create mode 100644 SOURCES/libvirt-cpu_map-Add-avx10-CPU-features.patch create mode 100644 SOURCES/libvirt-cpu_map-Add-sha512-sm3-and-sm4-CPU-features.patch create mode 100644 SOURCES/libvirt-docs-formatdomain-document-intel-only-IOMMU-attributes.patch create mode 100644 SOURCES/libvirt-esx-Accept-empty-path-URI-component-same-way-as.patch create mode 100644 SOURCES/libvirt-esx-Allow-specifying-different-CA-bundle-for-remote-connections.patch create mode 100644 SOURCES/libvirt-esxConnectListAllDomains-Don-t-propagate-failure-to-lookup-a-single-domain.patch create mode 100644 SOURCES/libvirt-libvirt-domain-introduce-VIR_CONNECT_GET_DOMAIN_CAPABILITIES_DISABLE_DEPRECATED_FEATURES.patch create mode 100644 SOURCES/libvirt-libvirt-host-Clarify-fix-description-of-the-CPU-frequency-field.patch create mode 100644 SOURCES/libvirt-libxl-support-rawset-ACPI-table-type.patch create mode 100644 SOURCES/libvirt-manpages-virsh-Use-disclaimer-from-virNodeGetInfo-for-virsh-nodeinfo.patch create mode 100644 SOURCES/libvirt-network-Free-inhibitor-in-networkStateCleanup.patch create mode 100644 SOURCES/libvirt-qemu-Add-support-for-VIR_DOMAIN_GUEST_INFO_LOAD.patch create mode 100644 SOURCES/libvirt-qemu-Allow-virtio-mem-on-CCW.patch create mode 100644 SOURCES/libvirt-qemu-Avoid-crash-in-qemuDomainCheckCPU-with-unknown-host-CPU.patch create mode 100644 SOURCES/libvirt-qemu-Do-NOT-autoadd-NUMA-node-for-s390.patch create mode 100644 SOURCES/libvirt-qemu-Properly-propagate-migration-state-to-TPM-cleanup-code.patch create mode 100644 SOURCES/libvirt-qemu-Rename-outgoingMigration-parameter-in-various-TPM-functions.patch create mode 100644 SOURCES/libvirt-qemu-Validate-virtio-mem-ccw.patch create mode 100644 SOURCES/libvirt-qemu-add-IOMMU-model-amd.patch create mode 100644 SOURCES/libvirt-qemu-add-ability-to-set-TLS-priority-string-with-QEMU.patch create mode 100644 SOURCES/libvirt-qemu-fix-order-of-VNC-TLS-config-entries.patch create mode 100644 SOURCES/libvirt-qemu-introduce-QEMU_CAPS_AMD_IOMMU.patch create mode 100644 SOURCES/libvirt-qemu-introduce-QEMU_CAPS_PCI_ID.patch create mode 100644 SOURCES/libvirt-qemu-make-passt-vhostuser-reconnect-behave-identically-to-passt-user.patch create mode 100644 SOURCES/libvirt-qemu-make-processNetDevStreamDisconnectedEvent-reusable.patch create mode 100644 SOURCES/libvirt-qemu-parse-deprecated-props-from-query-cpu-model-expansion-response.patch create mode 100644 SOURCES/libvirt-qemu-process-Remove-un-updated-qemuProcessStartWarnShmem.patch create mode 100644 SOURCES/libvirt-qemu-put-vhost-user-code-that-s-special-for-passt-in-a-helper-function.patch create mode 100644 SOURCES/libvirt-qemu-remove-nonsensical-sanity-check-in-processNetdevStreamDisconnectedEvent.patch create mode 100644 SOURCES/libvirt-qemu-respond-to-NETDEV_VHOST_USER_DISCONNECTED-event.patch create mode 100644 SOURCES/libvirt-qemu-sanitize-blank-lines-in-config-file.patch create mode 100644 SOURCES/libvirt-qemu-snapshot-error-out-early-when-reverting-snapshot-for-VM-with-non-file-disk.patch create mode 100644 SOURCES/libvirt-qemu-support-MSDM-ACPI-table-type.patch create mode 100644 SOURCES/libvirt-qemu-support-raw-ACPI-table-type.patch create mode 100644 SOURCES/libvirt-qemuDomainBlockCopyCommon-Don-t-revoke-access-to-file-twice-on-failure.patch create mode 100644 SOURCES/libvirt-qemuMonitorJSONGetCPUModelExpansion-refactor-parsing-functions.patch create mode 100644 SOURCES/libvirt-qemuPrepareNVRAMFile-Fix-NVRAM-image-conversion-check.patch create mode 100644 SOURCES/libvirt-qemuValidateDomainDeviceDefNetwork-Require-shared-memory-for-all-vhost-user-interfaces.patch create mode 100644 SOURCES/libvirt-qemu_agent-Add-qemuAgentGetLoadAvg.patch create mode 100644 SOURCES/libvirt-qemu_capabilities-Fetch-caps-for-virtio-mem-ccw-too.patch create mode 100644 SOURCES/libvirt-qemu_capabilities-filter-deprecated-features-if-requested.patch create mode 100644 SOURCES/libvirt-qemu_capabilities-query-deprecated-features-for-host-model.patch create mode 100644 SOURCES/libvirt-qemu_caps-Introduce-QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW.patch create mode 100644 SOURCES/libvirt-qemu_command-Use-qemuBuildVirtioDevProps-to-build-cmd-line-for-virtio-mem-and-virtio-pmem.patch create mode 100644 SOURCES/libvirt-qemu_domain_address-fix-CCW-virtio-mem-hotplug.patch create mode 100644 SOURCES/libvirt-qemu_snapshot-allow-reverting-to-external-disk-only-snapshot.patch create mode 100644 SOURCES/libvirt-qemuxmlconftest-Drop-s390-default-cpu-.ccw-virtio-2.7-test-cases.patch create mode 100644 SOURCES/libvirt-qemuxmlconftest-Include-shared-memory-net-vhostuser-test-cases.patch create mode 100644 SOURCES/libvirt-qemuxmlconftest-Introduce-memory-hotplug-virtio-mem-ccw-s390x.xml.patch create mode 100644 SOURCES/libvirt-qemuxmlconftest-Introduce-memory-hotplug-virtio-mem-pci-s390x.xml.patch create mode 100644 SOURCES/libvirt-redhat-Restore-hunks-in-tests-qemucapabilitiesdata-caps_10.0.0_s390x.patch create mode 100644 SOURCES/libvirt-remote-add-sysusers-file-to-create-libvirt-group.patch create mode 100644 SOURCES/libvirt-rpc-remove-logind-support-for-virNetDaemon.patch create mode 100644 SOURCES/libvirt-src-convert-drivers-over-to-new-virInhibitor-APIs.patch create mode 100644 SOURCES/libvirt-src-introduce-raw-and-rawset-ACPI-table-types.patch create mode 100644 SOURCES/libvirt-src-validate-permitted-ACPI-table-types-in-libxl-qemu-drivers.patch create mode 100644 SOURCES/libvirt-tests-add-capabilities-for-QEMU-10.0.0-on-s390x.patch create mode 100644 SOURCES/libvirt-util-don-t-attempt-to-acquire-logind-inhibitor-if-not-requested.patch create mode 100644 SOURCES/libvirt-util-fix-off-by-1-in-inhibitor-constants.patch create mode 100644 SOURCES/libvirt-util-introduce-object-for-holding-a-system-inhibitor-lock.patch create mode 100644 SOURCES/libvirt-virNodeGetInfo-Improve-description-of-the-case-when-fake-data-is-reported.patch create mode 100644 SOURCES/libvirt-virsh-Add-support-for-VIR_DOMAIN_GUEST_INFO_LOAD.patch create mode 100644 SOURCES/libvirt-virsh-Introduce-new-hypervisor-cpu-models-command.patch create mode 100644 SOURCES/libvirt-virsh-add-disable-deprecated-features-flag-to-domcapabilities.patch diff --git a/SOURCES/libvirt-Add-load-average-information-type-into-virDomainGetGuestInfo.patch b/SOURCES/libvirt-Add-load-average-information-type-into-virDomainGetGuestInfo.patch new file mode 100644 index 0000000..224dd74 --- /dev/null +++ b/SOURCES/libvirt-Add-load-average-information-type-into-virDomainGetGuestInfo.patch @@ -0,0 +1,53 @@ +From 9874072fc9396d609f1a0213bb06fa7e9a2fa019 Mon Sep 17 00:00:00 2001 +Message-ID: <9874072fc9396d609f1a0213bb06fa7e9a2fa019.1747908717.git.jdenemar@redhat.com> +From: Martin Kletzander +Date: Tue, 25 Feb 2025 15:36:03 +0100 +Subject: [PATCH] Add load average information type into virDomainGetGuestInfo + +The public API part. + +Signed-off-by: Martin Kletzander +Reviewed-by: Peter Krempa +(cherry picked from commit c52c449fd40c7263896d5f17129207b815c3a09c) + +https://issues.redhat.com/browse/RHEL-88447 + +Signed-off-by: Martin Kletzander +--- + include/libvirt/libvirt-domain.h | 1 + + src/libvirt-domain.c | 8 ++++++++ + 2 files changed, 9 insertions(+) + +diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h +index f026ce197c..c04b696f03 100644 +--- a/include/libvirt/libvirt-domain.h ++++ b/include/libvirt/libvirt-domain.h +@@ -6425,6 +6425,7 @@ typedef enum { + VIR_DOMAIN_GUEST_INFO_FILESYSTEM = (1 << 4), /* return filesystem information (Since: 5.7.0) */ + VIR_DOMAIN_GUEST_INFO_DISKS = (1 << 5), /* return disks information (Since: 7.0.0) */ + VIR_DOMAIN_GUEST_INFO_INTERFACES = (1 << 6), /* return interfaces information (Since: 7.10.0) */ ++ VIR_DOMAIN_GUEST_INFO_LOAD = (1 << 7), /* return load averages (Since: 11.2.0) */ + } virDomainGuestInfoTypes; + + int virDomainGetGuestInfo(virDomainPtr domain, +diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c +index 7c6b93963c..24752a9888 100644 +--- a/src/libvirt-domain.c ++++ b/src/libvirt-domain.c +@@ -13292,6 +13292,14 @@ virDomainSetVcpu(virDomainPtr domain, + * "if..addr..addr" - the IP address of addr + * "if..addr..prefix" - the prefix of IP address of addr + * ++ * VIR_DOMAIN_GUEST_INFO_LOAD: ++ * Returns load (the number of processes in the runqueue or waiting for disk ++ * I/O) as double values: ++ * ++ * "load.1m" - load averaged over 1 minute ++ * "load.5m" - load averaged over 5 minutes ++ * "load.15m" - load averaged over 15 minutes ++ * + * Using 0 for @types returns all information groups supported by the given + * hypervisor. + * +-- +2.49.0 diff --git a/SOURCES/libvirt-conf-add-deprecated_features-attribute.patch b/SOURCES/libvirt-conf-add-deprecated_features-attribute.patch new file mode 100644 index 0000000..11fdd08 --- /dev/null +++ b/SOURCES/libvirt-conf-add-deprecated_features-attribute.patch @@ -0,0 +1,280 @@ +From 4c66a653f02c8259fdcf72fdcd801b594f73183e Mon Sep 17 00:00:00 2001 +Message-ID: <4c66a653f02c8259fdcf72fdcd801b594f73183e.1749039441.git.jdenemar@redhat.com> +From: Collin Walling +Date: Mon, 16 Dec 2024 18:03:58 -0500 +Subject: [PATCH] conf: add deprecated_features attribute + +Add a new a attribute, deprecated_features='on|off' to the +element. This is used to toggle features flagged as deprecated on the +CPU model on or off. When this attribute is paired with 'on', +deprecated features will not be filtered. When paired with 'off', any +CPU features that are flagged as deprecated will be listed under the +CPU model with the 'disable' policy. + +Example: + + + +The absence of this attribute is equivalent to the 'on' option. + +The deprecated features that will populate the domain XML are the same +features that result in the virsh domcapabilities command with the +--disable-deprecated-features argument present. + +It is recommended to define a domain XML with this attribute set to +'off' to ensure migration to machines that may outright drop these +features in the future. + +Signed-off-by: Collin Walling +Reviewed-by: Jiri Denemark +(cherry picked from commit 62658bbf060784c757f96c9de3935f27885834aa) +JIRA: https://issues.redhat.com/browse/RHEL-89415 +Signed-off-by: Thomas Huth +--- + src/conf/cpu_conf.c | 11 +++++++ + src/conf/cpu_conf.h | 1 + + src/conf/schemas/cputypes.rng | 5 +++ + src/qemu/qemu_process.c | 11 +++++++ + ...el-deprecated-features-off.s390x-8.2.0.err | 1 + + ...el-deprecated-features-off.s390x-8.2.0.xml | 25 +++++++++++++++ + ...-deprecated-features-off.s390x-latest.args | 32 +++++++++++++++++++ + ...l-deprecated-features-off.s390x-latest.xml | 25 +++++++++++++++ + .../cpu-model-deprecated-features-off.xml | 15 +++++++++ + tests/qemuxmlconftest.c | 3 ++ + 10 files changed, 129 insertions(+) + create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.err + create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.xml + create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.args + create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-latest.xml + create mode 100644 tests/qemuxmlconfdata/cpu-model-deprecated-features-off.xml + +diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c +index dcc164d165..31425783ba 100644 +--- a/src/conf/cpu_conf.c ++++ b/src/conf/cpu_conf.c +@@ -238,6 +238,7 @@ virCPUDefCopyWithoutModel(const virCPUDef *cpu) + copy->mode = cpu->mode; + copy->match = cpu->match; + copy->check = cpu->check; ++ copy->deprecated_feats = cpu->deprecated_feats; + copy->fallback = cpu->fallback; + copy->sockets = cpu->sockets; + copy->dies = cpu->dies; +@@ -450,6 +451,11 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt, + if (virXMLPropEnum(ctxt->node, "check", virCPUCheckTypeFromString, + VIR_XML_PROP_NONE, &def->check) < 0) + return -1; ++ ++ if (virXMLPropTristateSwitch(ctxt->node, "deprecated_features", ++ VIR_XML_PROP_NONE, ++ &def->deprecated_feats) < 0) ++ return -1; + } + + if (def->type == VIR_CPU_TYPE_HOST) { +@@ -748,6 +754,11 @@ virCPUDefFormatBufFull(virBuffer *buf, + virBufferAsprintf(&attributeBuf, " migratable='%s'", + virTristateSwitchTypeToString(def->migratable)); + } ++ ++ if (def->deprecated_feats) { ++ virBufferAsprintf(&attributeBuf, " deprecated_features='%s'", ++ virTristateSwitchTypeToString(def->deprecated_feats)); ++ } + } + + /* Format children */ +diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h +index f71d942ce6..28e26303ef 100644 +--- a/src/conf/cpu_conf.h ++++ b/src/conf/cpu_conf.h +@@ -161,6 +161,7 @@ struct _virCPUDef { + virCPUMaxPhysAddrDef *addr; + virHostCPUTscInfo *tsc; + virTristateSwitch migratable; /* for host-passthrough mode */ ++ virTristateSwitch deprecated_feats; + }; + + virCPUDef *virCPUDefNew(void); +diff --git a/src/conf/schemas/cputypes.rng b/src/conf/schemas/cputypes.rng +index 3a8910e09f..8edf1d14e3 100644 +--- a/src/conf/schemas/cputypes.rng ++++ b/src/conf/schemas/cputypes.rng +@@ -439,6 +439,11 @@ + + + ++ ++ ++ ++ ++ + + + +diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c +index c1ae324ad4..64683ecfe0 100644 +--- a/src/qemu/qemu_process.c ++++ b/src/qemu/qemu_process.c +@@ -6429,6 +6429,17 @@ qemuProcessUpdateGuestCPU(virDomainDef *def, + &def->os.arch) < 0) + return -1; + ++ if (def->cpu->deprecated_feats && ++ !virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION_DEPRECATED_PROPS)) { ++ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", ++ _("toggling deprecated features for CPU model is unsupported")); ++ return -1; ++ } ++ ++ if (def->cpu->deprecated_feats == VIR_TRISTATE_SWITCH_OFF) { ++ virQEMUCapsUpdateCPUDeprecatedFeatures(qemuCaps, def->virtType, def->cpu); ++ } ++ + return 0; + } + +diff --git a/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.err b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.err +new file mode 100644 +index 0000000000..936d1d5a46 +--- /dev/null ++++ b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.err +@@ -0,0 +1 @@ ++unsupported configuration: toggling deprecated features for CPU model is unsupported +diff --git a/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.xml b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.xml +new file mode 100644 +index 0000000000..e1f7ba3857 +--- /dev/null ++++ b/tests/qemuxmlconfdata/cpu-model-deprecated-features-off.s390x-8.2.0.xml +@@ -0,0 +1,25 @@ ++ ++ guest ++ 22782664-6b93-46bf-9595-317220dd2d1c ++ 219100 ++ 219100 ++ 1 ++ ++ hvm ++ ++ ++ ++ ++ destroy ++ restart ++ destroy ++ ++ /usr/bin/qemu-system-s390x ++ ++