]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: add default_cpu_deprecated_features configuration option
authorBoris Fiuczynski <fiuczy@linux.ibm.com>
Mon, 30 Jun 2025 03:19:30 +0000 (23:19 -0400)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 25 Jul 2025 13:36:21 +0000 (15:36 +0200)
Allow to define the default for deprecated_features when the attribute
is not set in the cpu defintion of a domain XML. If these features are
still desired, they may be reenabled via the deprecated_features='on'
attribute.

Some existing tests utilize this updated behavior, so update the CPU
features on the corresponding args files.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Acked-by: Thomas Huth <thuth@redhat.com>
13 files changed:
src/qemu/libvirtd_qemu.aug
src/qemu/qemu.conf.in
src/qemu/qemu_conf.c
src/qemu/qemu_conf.h
src/qemu/qemu_process.c
src/qemu/test_libvirtd_qemu.aug.in
tests/qemuxmlconfdata/cpu-model-deprecated-features-none.s390x-latest.args
tests/qemuxmlconfdata/default-video-type-s390x.s390x-latest.args
tests/qemuxmlconfdata/hostdev-vfio-zpci-ccw-memballoon.s390x-latest.args
tests/qemuxmlconfdata/launch-security-s390-pv.s390x-latest.args
tests/qemuxmlconfdata/s390-default-cpu-kvm-ccw-virtio-4.2.s390x-latest.args
tests/qemuxmlconfdata/s390-defaultconsole.s390x-latest.args
tests/qemuxmlconfdata/s390-panic.s390x-latest.args

index 772d4dcabe6e02c7da1c300602439116a786cff6..0286582169fa4d42ce966cfdf0729cb74529f993 100644 (file)
@@ -166,6 +166,8 @@ module Libvirtd_qemu =
 
    let filesystem_entry = str_array_entry "shared_filesystems"
 
+   let default_cpu_deprecated_features = str_entry "default_cpu_deprecated_features"
+
    (* Entries that used to exist in the config which are now
     * deleted. We keep on parsing them so we don't break
     * ability to parse old configs after upgrade
@@ -198,6 +200,7 @@ module Libvirtd_qemu =
              | capability_filters_entry
              | storage_entry
              | filesystem_entry
+             | default_cpu_deprecated_features
              | obsolete_entry
 
    let comment = [ label "#comment" . del /#[ \t]*/ "# " .  store /([^ \t\n][^\n]*)?/ . del /\n/ "\n" ]
index b0fb30d74fe3db8c17edc92e84eca858d4522800..fc91ba8f0818ee8264ff2692a51b9fc4cc0092fb 100644 (file)
 #  "/path/to/nvram",
 #  "/path/to/swtpm"
 #]
+
+# If QEMU provides a list of deprecated CPU features it is possible to use
+# this list for removal of deprecated CPU features during CPU model expansion.
+# The deprecated_features XML attribute on the XML CPU element in the domain
+# XML can be used to turn deprecated CPU features 'off' or 'on'. Using the
+# option default_cpu_deprecated_features allows to define the default behavior
+# when the attribute deprecated_features is not provided in the domain XML.
+#
+# Possible options are:
+# "off"  - (default) deprecated features are removed during CPU model expansion
+# "on"   - deprecated features remain required in the expanded CPU model
+# "none" - no deprecated_features attribute is added to expanded CPU model
+#
+#default_cpu_deprecated_features = "off"
index 088904eb12698c3e362689a27aec7d06d101dfbd..242955200a8ab51b051d3a6754e0728854b39d2a 100644 (file)
@@ -81,6 +81,11 @@ VIR_ENUM_IMPL(virQEMUSchedCore,
               "emulator",
               "full");
 
+VIR_ENUM_IMPL(virQEMUDeprecatedFeatures,
+              QEMU_DEPRECATED_FEATURES_LAST,
+              "off",
+              "on",
+              "none");
 
 static virClass *virQEMUDriverConfigClass;
 static void virQEMUDriverConfigDispose(void *obj);
@@ -1264,6 +1269,31 @@ virQEMUDriverConfigLoadFilesystemEntry(virQEMUDriverConfig *cfg,
 }
 
 
+static int
+virQEMUDriverConfigLoadDeprecatedFeaturesEntry(virQEMUDriverConfig *cfg,
+                                               virConf *conf)
+{
+    g_autofree char *depFeats = NULL;
+
+    if (virConfGetValueString(conf, "default_cpu_deprecated_features", &depFeats) < 0)
+        return -1;
+    if (depFeats) {
+        int val = virQEMUDeprecatedFeaturesTypeFromString(depFeats);
+
+        if (val < 0) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("Unknown default_cpu_deprecated_features value %1$s"),
+                           depFeats);
+            return -1;
+        }
+
+        cfg->defaultDeprecatedFeatures = val;
+    }
+
+    return 0;
+}
+
+
 int virQEMUDriverConfigLoadFile(virQEMUDriverConfig *cfg,
                                 const char *filename,
                                 bool privileged)
@@ -1344,6 +1374,9 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfig *cfg,
     if (virQEMUDriverConfigLoadFilesystemEntry(cfg, conf) < 0)
         return -1;
 
+    if (virQEMUDriverConfigLoadDeprecatedFeaturesEntry(cfg, conf) < 0)
+        return -1;
+
     return 0;
 }
 
index 192ddd0cbddb2298ef3eea61df57a2cb3f075a6c..edb65c99f4d2f886759c4c22d90ade218786c32d 100644 (file)
@@ -58,6 +58,16 @@ typedef enum {
 
 VIR_ENUM_DECL(virQEMUSchedCore);
 
+typedef enum {
+    QEMU_DEPRECATED_FEATURES_OFF = 0,
+    QEMU_DEPRECATED_FEATURES_ON,
+    QEMU_DEPRECATED_FEATURES_NONE,
+
+    QEMU_DEPRECATED_FEATURES_LAST
+} virQEMUDeprecatedFeatures;
+
+VIR_ENUM_DECL(virQEMUDeprecatedFeatures);
+
 typedef struct _virQEMUDriver virQEMUDriver;
 
 typedef struct _virQEMUDriverConfig virQEMUDriverConfig;
@@ -251,6 +261,8 @@ struct _virQEMUDriverConfig {
     virQEMUSchedCore schedCore;
 
     char **sharedFilesystems;
+
+    virQEMUDeprecatedFeatures defaultDeprecatedFeatures;
 };
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(virQEMUDriverConfig, virObjectUnref);
index 623d75e15a77349da773c50ba2af8449a1a71fe7..8f3d357b9f4c0c5860222e631f255111ac9cdb9a 100644 (file)
@@ -6450,6 +6450,7 @@ static int
 qemuProcessUpdateGuestCPU(virDomainDef *def,
                           virQEMUCaps *qemuCaps,
                           virArch hostarch,
+                          virQEMUDriverConfig *cfg,
                           unsigned int flags)
 {
     if (!def->cpu)
@@ -6495,6 +6496,29 @@ qemuProcessUpdateGuestCPU(virDomainDef *def,
             return -1;
     }
 
+    /* s390 CPU models should disable deprecated features for host-models by
+     * default if supported by QEMU. Set the flag now so the appropriate
+     * features are updated later.
+     */
+    if (ARCH_IS_S390(def->os.arch) &&
+        virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION_DEPRECATED_PROPS) &&
+        def->cpu->mode == VIR_CPU_MODE_HOST_MODEL &&
+        !def->cpu->deprecated_feats) {
+        switch (cfg->defaultDeprecatedFeatures) {
+        case QEMU_DEPRECATED_FEATURES_OFF:
+            def->cpu->deprecated_feats = VIR_TRISTATE_SWITCH_OFF;
+            break;
+        case QEMU_DEPRECATED_FEATURES_ON:
+            def->cpu->deprecated_feats = VIR_TRISTATE_SWITCH_ON;
+            break;
+        case QEMU_DEPRECATED_FEATURES_NONE:
+            def->cpu->deprecated_feats = VIR_TRISTATE_SWITCH_ABSENT;
+            break;
+        case QEMU_DEPRECATED_FEATURES_LAST:
+            break;
+        }
+    }
+
     /* nothing to update for host-passthrough / maximum */
     if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH &&
         def->cpu->mode != VIR_CPU_MODE_MAXIMUM) {
@@ -6949,7 +6973,7 @@ qemuProcessPrepareDomain(virQEMUDriver *driver,
     priv->pausedReason = VIR_DOMAIN_PAUSED_UNKNOWN;
 
     VIR_DEBUG("Updating guest CPU definition");
-    if (qemuProcessUpdateGuestCPU(vm->def, priv->qemuCaps, driver->hostarch, flags) < 0)
+    if (qemuProcessUpdateGuestCPU(vm->def, priv->qemuCaps, driver->hostarch, cfg, flags) < 0)
         return -1;
 
     for (i = 0; i < vm->def->nshmems; i++)
index 1fa0e2206e8dc15e3fcf3bb8704c3108459fac5a..90012b3f52c1f470e8a5789f0b682cb5bcc1211f 100644 (file)
@@ -142,3 +142,4 @@ module Test_libvirtd_qemu =
     { "2" = "/path/to/nvram" }
     { "3" = "/path/to/swtpm" }
 }
+{ "default_cpu_deprecated_features" = "off" }
index 8cdb2a2ac2a034e1fe93fb72cc4ec6740d0671e5..ba6e7c5304d16cec45cd5141ef468b5635f336e6 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \
 -machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
 -accel kvm \
--cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=on,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=on,ais=on,bpb=on,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=on,cmm=on,vxpdeh2=on \
+-cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=off,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=off,ais=on,bpb=off,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=off,cmm=on,vxpdeh2=on \
 -m size=219136k \
 -object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":224395264}' \
 -overcommit mem-lock=off \
index 1c1a1066e4cc1dced0bc40702332ea875d89ed05..ff71f5b872204951ca577cd96e9713cc45cfe6af 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-default-video-type-s/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-default-video-type-s/master-key.aes"}' \
 -machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
 -accel kvm \
--cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=on,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=on,ais=on,bpb=on,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=on,cmm=on,vxpdeh2=on \
+-cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=off,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=off,ais=on,bpb=off,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=off,cmm=on,vxpdeh2=on \
 -m size=1048576k \
 -object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":1073741824}' \
 -overcommit mem-lock=off \
index d69ebfc8fdb5cfdeb791680271a73d4df09be727..25c0ed2c9c8d5598a9b256ec08847e4e5d7893df 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-KVMGuest1/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-KVMGuest1/master-key.aes"}' \
 -machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
 -accel kvm \
--cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=on,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=on,ais=on,bpb=on,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=on,cmm=on,vxpdeh2=on \
+-cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=off,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=off,ais=on,bpb=off,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=off,cmm=on,vxpdeh2=on \
 -m size=219136k \
 -object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":224395264}' \
 -overcommit mem-lock=off \
index 4f052238e98ddcbb8d90432cb862710507e44e0a..4c80d0bf39017c6b47812c0f029fba3b340a0527 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
 -machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram,confidential-guest-support=lsec0 \
 -accel kvm \
--cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=on,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=on,ais=on,bpb=on,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=on,cmm=on,vxpdeh2=on \
+-cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=off,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=off,ais=on,bpb=off,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=off,cmm=on,vxpdeh2=on \
 -m size=219136k \
 -object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":224395264}' \
 -overcommit mem-lock=off \
index a6d8ba59527a7747cd6bc35a92cbb98bae6b7327..3f3de9a6682bf57ae91859a692124b2da371cfd5 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-test/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-test/master-key.aes"}' \
 -machine s390-ccw-virtio-4.2,usb=off,dump-guest-core=off,memory-backend=s390.ram \
 -accel kvm \
--cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=on,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=on,ais=on,bpb=on,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=on,cmm=on,vxpdeh2=on \
+-cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=off,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=off,ais=on,bpb=off,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=off,cmm=on,vxpdeh2=on \
 -m size=262144k \
 -object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":268435456}' \
 -overcommit mem-lock=off \
index e56d48ac36144a74e1f0eb3df81f6bb3c5ab887a..3efa883d8cc17171f10763290a56dffedf4ec73d 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-test/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-test/master-key.aes"}' \
 -machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
 -accel kvm \
--cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=on,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=on,ais=on,bpb=on,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=on,cmm=on,vxpdeh2=on \
+-cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=off,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=off,ais=on,bpb=off,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=off,cmm=on,vxpdeh2=on \
 -m size=262144k \
 -object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":268435456}' \
 -overcommit mem-lock=off \
index c5e4c9245eedc8474641bf2fbb4e1317208590da..8afd5de0f6f753cdb5b0468ef22dc25fd7ebcd42 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-test/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-test/master-key.aes"}' \
 -machine s390-ccw-virtio,usb=off,dump-guest-core=off,memory-backend=s390.ram \
 -accel kvm \
--cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=on,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=on,ais=on,bpb=on,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=on,cmm=on,vxpdeh2=on \
+-cpu gen16a-base,nnpa=on,aen=on,cmmnt=on,vxpdeh=on,aefsi=on,diag318=on,csske=off,mepoch=on,msa9=on,msa8=on,msa7=on,msa6=on,msa5=on,msa4=on,msa3=on,msa2=on,msa1=on,sthyi=on,edat=on,ri=on,deflate=on,edat2=on,etoken=on,vx=on,ipter=on,pai=on,paie=on,mepochptff=on,ap=on,vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,appv=on,apqi=on,apft=on,els=on,iep=on,appvi=on,apqci=on,cte=off,ais=on,bpb=off,ctop=on,gs=on,ppa15=on,zpci=on,rdp=on,sea_esop2=on,beareh=on,te=off,cmm=on,vxpdeh2=on \
 -m size=262144k \
 -object '{"qom-type":"memory-backend-ram","id":"s390.ram","size":268435456}' \
 -overcommit mem-lock=off \