[PATCH 00/11] hyperv: implement defining/undefining domains and
by Matt Coleman
This series starts by fixing a some dangerous behavior due to ambiguous
VM names, since Hyper-V allows multiple VMs to be defined with the same
name. That meant that `virsh dumpxml` could return XML for the wrong
domain. Additionally, when I implemented `undefine`, it would just
select one of the domains with the given name.
The majority of the series implements defining and undefining domains,
as well as attaching storage devices to domains.
Networking functionality will be in the next patch series.
Here's a GitLab MR, if you'd prefer to review the changes there:
https://gitlab.com/iammattcoleman/libvirt/-/merge_requests/14
Matt Coleman (11):
hyperv: ambiguous VM names will throw an error
hyperv: implement domainUndefine and domainUndefineFlags
hyperv: implement domainCreateXML and domainDefineXML
hyperv: add hypervMsvmVSMSAddResourceSettings
hyperv: create SCSI controllers when defining domains
hyperv: attach virtual disks when defining domains
hyperv: attach physical disks when defining domains
hyperv: attach virtual optical disks when defining domains
hyperv: attach floppy disks when defining domains
hyperv: implement domainAttachDevice and domainAttachDeviceFlags
news: defining/undefining domains & device attachment for Hyper-V
NEWS.rst | 7 +-
include/libvirt/virterror.h | 1 +
src/hyperv/hyperv_driver.c | 881 ++++++++++++++++++++++++++++++++
src/hyperv/hyperv_wmi.c | 52 ++
src/hyperv/hyperv_wmi.h | 5 +
src/hyperv/hyperv_wmi_classes.h | 1 +
src/util/virerror.c | 6 +-
7 files changed, 949 insertions(+), 4 deletions(-)
--
2.27.0
3 years, 10 months
[PATCH] Qemu: migration: Not bind RAM info with active migration status
by Keqian Zhu
For that Qemu supports returning incoming migration info since its commit
65ace0604551 (migration: add postcopy total blocktime into query-migrate),
which may contains active status, but without RAM info. Drop this binding
relationship check in libvirt.
Signed-off-by: Keqian Zhu <zhukeqian1(a)huawei.com>
---
src/qemu/qemu_monitor_json.c | 88 +++++++++++++++++-------------------
1 file changed, 42 insertions(+), 46 deletions(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index d808c4b55b..ba8e340742 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -3547,56 +3547,52 @@ qemuMonitorJSONGetMigrationStatsReply(virJSONValuePtr reply,
case QEMU_MONITOR_MIGRATION_STATUS_PRE_SWITCHOVER:
case QEMU_MONITOR_MIGRATION_STATUS_DEVICE:
ram = virJSONValueObjectGetObject(ret, "ram");
- if (!ram) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("migration was active, but no RAM info was set"));
- return -1;
- }
+ if (ram) {
+ if (virJSONValueObjectGetNumberUlong(ram, "transferred",
+ &stats->ram_transferred) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("migration was active, but RAM 'transferred' "
+ "data was missing"));
+ return -1;
+ }
+ if (virJSONValueObjectGetNumberUlong(ram, "remaining",
+ &stats->ram_remaining) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("migration was active, but RAM 'remaining' "
+ "data was missing"));
+ return -1;
+ }
+ if (virJSONValueObjectGetNumberUlong(ram, "total",
+ &stats->ram_total) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("migration was active, but RAM 'total' "
+ "data was missing"));
+ return -1;
+ }
- if (virJSONValueObjectGetNumberUlong(ram, "transferred",
- &stats->ram_transferred) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("migration was active, but RAM 'transferred' "
- "data was missing"));
- return -1;
- }
- if (virJSONValueObjectGetNumberUlong(ram, "remaining",
- &stats->ram_remaining) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("migration was active, but RAM 'remaining' "
- "data was missing"));
- return -1;
- }
- if (virJSONValueObjectGetNumberUlong(ram, "total",
- &stats->ram_total) < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("migration was active, but RAM 'total' "
- "data was missing"));
- return -1;
- }
+ if (virJSONValueObjectGetNumberDouble(ram, "mbps", &mbps) == 0 &&
+ mbps > 0) {
+ /* mpbs from QEMU reports Mbits/s (M as in 10^6 not Mi as 2^20) */
+ stats->ram_bps = mbps * (1000 * 1000 / 8);
+ }
- if (virJSONValueObjectGetNumberDouble(ram, "mbps", &mbps) == 0 &&
- mbps > 0) {
- /* mpbs from QEMU reports Mbits/s (M as in 10^6 not Mi as 2^20) */
- stats->ram_bps = mbps * (1000 * 1000 / 8);
+ if (virJSONValueObjectGetNumberUlong(ram, "duplicate",
+ &stats->ram_duplicate) == 0)
+ stats->ram_duplicate_set = true;
+ ignore_value(virJSONValueObjectGetNumberUlong(ram, "normal",
+ &stats->ram_normal));
+ ignore_value(virJSONValueObjectGetNumberUlong(ram, "normal-bytes",
+ &stats->ram_normal_bytes));
+ ignore_value(virJSONValueObjectGetNumberUlong(ram, "dirty-pages-rate",
+ &stats->ram_dirty_rate));
+ ignore_value(virJSONValueObjectGetNumberUlong(ram, "page-size",
+ &stats->ram_page_size));
+ ignore_value(virJSONValueObjectGetNumberUlong(ram, "dirty-sync-count",
+ &stats->ram_iteration));
+ ignore_value(virJSONValueObjectGetNumberUlong(ram, "postcopy-requests",
+ &stats->ram_postcopy_reqs));
}
- if (virJSONValueObjectGetNumberUlong(ram, "duplicate",
- &stats->ram_duplicate) == 0)
- stats->ram_duplicate_set = true;
- ignore_value(virJSONValueObjectGetNumberUlong(ram, "normal",
- &stats->ram_normal));
- ignore_value(virJSONValueObjectGetNumberUlong(ram, "normal-bytes",
- &stats->ram_normal_bytes));
- ignore_value(virJSONValueObjectGetNumberUlong(ram, "dirty-pages-rate",
- &stats->ram_dirty_rate));
- ignore_value(virJSONValueObjectGetNumberUlong(ram, "page-size",
- &stats->ram_page_size));
- ignore_value(virJSONValueObjectGetNumberUlong(ram, "dirty-sync-count",
- &stats->ram_iteration));
- ignore_value(virJSONValueObjectGetNumberUlong(ram, "postcopy-requests",
- &stats->ram_postcopy_reqs));
-
disk = virJSONValueObjectGetObject(ret, "disk");
if (disk) {
rc = virJSONValueObjectGetNumberUlong(disk, "transferred",
--
2.19.1
3 years, 11 months
Release of libvirt-6.5.0
by Daniel Veillard
Half a day late, but I pushed the 6.5.0 release out, it is as usual
available as a signed tarball and source rpms from the server:
https://libvirt.org/sources/
I also tagged and pushed the 6.5.0 python bindings that one can find at
https://libvirt.org/sources/python/
This release includes a number of new features and some improvement,
as well as a crash which had made its way in 6.4.0.
It will also be my last release of libvirt after close to 15 years,
so expect new releases to be signed by Jiri Denemark from now on.
* New Features:
- Allow firmware blobs configuration
QEMU offers a way to tweak how firmware configures itself
and/or provide new configuration blobs. New ``<sysinfo/>``
type is introduced that will hold these new blobs.
It's possible to either specify new value as a string or
provide a filename which contents then serve as the value.
- nodedev: Add ability to create mediated devices
Mediated devices can now be created with ``virNodeDeviceCreateXML()``. This
functionality requires the ``mdevctl`` utility to be installed. The XML
schema for node devices was expanded to support attributes for mediated
devices.
- QEMU: add TPM Proxy device support
libvirt can now create guests using a new device type called
"TPM Proxy". The TPM Proxy connects to a TPM Resource Manager
present in the host, enabling the guest to run in secure virtual
machine mode with the help of an Ultravisor. Adding a TPM Proxy to
a pSeries guest brings no security benefits unless the guest is
running on a PPC64 host that has Ultravisor and TPM Resource Manager
support. Only one TPM Proxy is allowed per guest. A guest using
a TPM Proxy device can instantiate another TPM device at the same
time. This device is supported only for pSeries guests via the new
'spapr-tpm-proxy' model of the TPM 'passthrough' backend.
- virhook: Support hooks placed in several files
Running all scripts from directory /etc/libvirt/hooks/<driver>.d in
alphabetical order. Hook script in old place will be executed
as first for backward compatibility.
- qemu: Add support for migratable host-passthrough CPU
QEMU 2.12 made it possible for guests to use a migration-friendly
version of the host-passthrough CPU. This feature is now exposed by
libvirt.
* Improvements:
- network: Support NAT with IPv6
It's now possible to use ``<nat ipv6="yes"/>`` in a libvirt network.
- qemu: Auto-fill NUMA information for incomplete topologies
If the NUMA topology is not fully described in the guest XML, libvirt
will complete it by putting all unspecified CPUs in the first NUMA node.
This is only done in the QEMU binary itself supports disjointed CPU
ranges for NUMA nodes.
- qemu: Assign hostdev-backed interfaces to PCIe slots
All SR-IOV capable devices are PCIe, so when their VFs are assigned to
guests they should end up in PCIe slots rather than conventional PCI ones.
* Bug fixes:
- qemu: fixed crash in ``qemuDomainBlockCommit``
This release fixes a regression which was introduced in libvirt v6.4.0
where libvirtd always crashes when a block commit of a disk is requested.
- qemu: fixed zPCI address auto generation on s390
Removes the correlation between the zPCI address attributes uid and fid.
Fixes the validation and autogeneration of zPCI address attributes.
- qemu: Skip pre-creation of NVMe disks during migration
libvirt has no way to create NVMe devices on the target host, so it now
just makes sure they exist and let the migration proceed in that case.
Thanks everybody for the help on putting this release out, and
the gazillion ones before :-)
Enjoy and stay safe !
Daniel
--
Daniel Veillard | Red Hat Developers Tools http://developer.redhat.com/
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
3 years, 11 months
[RFC PATCH 0/3] Fix "virsh domfsinfo" on s390x (again)
by Thomas Huth
My previous attempts to fix "virsh domfsinfo" on s390x were unfortunately
wrong due to some misunderstandings on my side.
To correctly list the "Target" device in the output of "virsh domfsinfo",
we need to search through the available devices using their CCW address
on s390x.
For this the QEMU guest agent will be enhanced to also send the CCW
address of devices in the guest (see the following URL for details:
https://lore.kernel.org/qemu-devel/20201125105417.380317-1-thuth@redhat.com/
... but it has just been posted and will take some time to get merged,
since QEMU is still in hard freeze, that's why I've labed this libvirt
series here as RFC only). Using this CCW address, we then can look up
the correct target devices on the libvirt side, too.
See also https://bugzilla.redhat.com/show_bug.cgi?id=1858771 for some
more information.
Thomas Huth (3):
qemu: agent: Store CCW address in qemuAgentDiskInfo if provided by the
guest
domain_conf: Allow to look up virtio-block devices by their CCW
address
domain_conf: Allow to look up scsi disks when controller uses a CCW
address
src/conf/domain_conf.c | 33 ++++++++++++++++++++++++++++++++-
src/conf/domain_conf.h | 4 ++++
src/qemu/qemu_agent.c | 11 +++++++++++
src/qemu/qemu_agent.h | 2 ++
src/qemu/qemu_driver.c | 8 +++++---
5 files changed, 54 insertions(+), 4 deletions(-)
--
2.18.4
3 years, 11 months
[PATCH] virt-aa-helper: disallow graphics socket read permissions
by Simon Arlott
The VM does not need read permission for its own sockets to create(),
bind(), accept() connections or to recv(), send(), etc. on connections.
This was fixed in ab9569e5460d1e4737fe8b625c67687dc2204665
(virt-aa-helper: disallow VNC socket read permissions),
but then b6465e1aa49397367a9cd0f27110b9c2280a7385
(graphics: introduce new listen type 'socket')
and acc83afe333bfadd3f7f79091d38ca3d7da1eeb2
(acc83afe333bfadd3f7f79091d38ca3d7da1eeb2) reverted it.
Unless the read permission is omitted, VMs can connect to each other's
VNC/graphics sockets.
Signed-off-by: Simon Arlott <libvirt(a)octiron.net>
---
src/security/virt-aa-helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 6e6dd1b1db..fddbdafc41 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -1053,7 +1053,7 @@ get_files(vahControl * ctl)
if (listenObj.type == VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET &&
listenObj.socket &&
- vah_add_file(&buf, listenObj.socket, "rw"))
+ vah_add_file(&buf, listenObj.socket, "w"))
goto cleanup;
}
}
--
2.17.1
--
Simon Arlott
3 years, 11 months
[PATCH] util: Add phys_port_name support on virPCIGetNetName
by Dmytro Linkin
Current virPCIGetNetName() logic is to get net device name by checking
it's phys_port_id, if caller provide it, or by it's index (eg, by it's
position at sysfs net directory). This approach worked fine up until
linux kernel version 5.8, where NVIDIA Mellanox driver implemented
linking of VFs' representors to PCI device in switchdev mode. This mean
that device's sysfs net directory will hold multiple net devices. Ex.:
$ ls '/sys/bus/pci/devices/0000:82:00.0/net'
ens1f0 eth0 eth1
Most switch devices support phys_port_name instead of phys_port_id, so
virPCIGetNetName() will try to get PF name by it's index - 0. The
problem here is that the PF nedev entry may not be the first.
To fix that, for switch devices, we introduce a new logic to select the
PF uplink netdev according to the content of phys_port_name. Extend
virPCIGetNetName() with physPortNameRegex variable to get proper device
by it's phys_port_name scheme, for ex., "p[0-9]+$" to get PF,
"pf[0-9]+vf[0-9]+$" to get VF or "p1$" to get exact net device. So now
virPCIGetNetName() logic work in following sequence:
- filter by phys_port_id, if it's provided,
or
- filter by phys_port_name, if it's regex provided,
or
- get net device by it's index (position) in sysfs net directory.
Also, make getting content of iface sysfs files more generic.
Signed-off-by: Dmytro Linkin <dlinkin(a)nvidia.com>
Reviewed-by: Adrian Chiris <adrianc(a)nvidia.com>
---
src/hypervisor/virhostdev.c | 2 +-
src/util/virnetdev.c | 74 ++++++++++++++++++++++++++++++++++++---------
src/util/virnetdev.h | 4 +++
src/util/virpci.c | 63 ++++++++++++++++++++++++++++++++++++--
src/util/virpci.h | 6 ++++
5 files changed, 130 insertions(+), 19 deletions(-)
diff --git a/src/hypervisor/virhostdev.c b/src/hypervisor/virhostdev.c
index 69102b8..1f5c347 100644
--- a/src/hypervisor/virhostdev.c
+++ b/src/hypervisor/virhostdev.c
@@ -333,7 +333,7 @@ virHostdevNetDevice(virDomainHostdevDefPtr hostdev,
* type='hostdev'>, and it is only those devices that should
* end up calling this function.
*/
- if (virPCIGetNetName(sysfs_path, 0, NULL, linkdev) < 0)
+ if (virPCIGetNetName(sysfs_path, 0, NULL, NULL, linkdev) < 0)
return -1;
if (!(*linkdev)) {
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index b42fa86..99e3b35 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -1112,6 +1112,29 @@ virNetDevGetPCIDevice(const char *devName)
}
+/* A wrapper to get content of file from ifname SYSFS_NET_DIR
+ */
+static int
+virNetDevGetSysfsFileValue(const char *ifname,
+ const char *fileName,
+ char **sysfsFileData)
+{
+ g_autofree char *sysfsFile = NULL;
+
+ *sysfsFileData = NULL;
+
+ if (virNetDevSysfsFile(&sysfsFile, ifname, fileName) < 0)
+ return -1;
+
+ /* a failure to read just means the driver doesn't support
+ * <fileName>, so set success now and ignore the return from
+ * virFileReadAllQuiet().
+ */
+
+ ignore_value(virFileReadAllQuiet(sysfsFile, 1024, sysfsFileData));
+ return 0;
+}
+
/**
* virNetDevGetPhysPortID:
*
@@ -1130,20 +1153,29 @@ int
virNetDevGetPhysPortID(const char *ifname,
char **physPortID)
{
- g_autofree char *physPortIDFile = NULL;
-
- *physPortID = NULL;
-
- if (virNetDevSysfsFile(&physPortIDFile, ifname, "phys_port_id") < 0)
- return -1;
+ return virNetDevGetSysfsFileValue(ifname, "phys_port_id", physPortID);
+}
- /* a failure to read just means the driver doesn't support
- * phys_port_id, so set success now and ignore the return from
- * virFileReadAllQuiet().
- */
- ignore_value(virFileReadAllQuiet(physPortIDFile, 1024, physPortID));
- return 0;
+/**
+ * virNetDevGetPhysPortName:
+ *
+ * @ifname: name of a netdev
+ *
+ * @physPortName: pointer to char* that will receive @ifname's
+ * phys_port_name from sysfs (null terminated
+ * string). Could be NULL if @ifname's net driver doesn't
+ * support phys_port_name (most netdev drivers
+ * don't). Caller is responsible for freeing the string
+ * when finished.
+ *
+ * Returns 0 on success or -1 on failure.
+ */
+int
+virNetDevGetPhysPortName(const char *ifname,
+ char **physPortName)
+{
+ return virNetDevGetSysfsFileValue(ifname, "phys_port_name", physPortName);
}
@@ -1200,7 +1232,7 @@ virNetDevGetVirtualFunctions(const char *pfname,
}
if (virPCIGetNetName(pci_sysfs_device_link, 0,
- pfPhysPortID, &((*vfname)[i])) < 0) {
+ pfPhysPortID, NULL, &((*vfname)[i])) < 0) {
goto cleanup;
}
@@ -1295,7 +1327,8 @@ virNetDevGetPhysicalFunction(const char *ifname, char **pfname)
return -1;
if (virPCIGetNetName(physfn_sysfs_path, 0,
- vfPhysPortID, pfname) < 0) {
+ vfPhysPortID,
+ VIR_PF_PHYS_PORT_NAME_REGEX, pfname) < 0) {
return -1;
}
@@ -1358,7 +1391,7 @@ virNetDevPFGetVF(const char *pfname, int vf, char **vfname)
* isn't bound to a netdev driver, it won't have a netdev name,
* and vfname will be NULL).
*/
- return virPCIGetNetName(virtfnSysfsPath, 0, pfPhysPortID, vfname);
+ return virPCIGetNetName(virtfnSysfsPath, 0, pfPhysPortID, NULL, vfname);
}
@@ -1403,6 +1436,17 @@ virNetDevGetPhysPortID(const char *ifname G_GNUC_UNUSED,
}
int
+virNetDevGetPhysPortName(const char *ifname G_GNUC_UNUSED,
+ char **physPortName)
+{
+ /* this actually should never be called, and is just here to
+ * satisfy the linker.
+ */
+ *physPortName = NULL;
+ return 0;
+}
+
+int
virNetDevGetVirtualFunctions(const char *pfname G_GNUC_UNUSED,
char ***vfname G_GNUC_UNUSED,
virPCIDeviceAddressPtr **virt_fns G_GNUC_UNUSED,
diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h
index 55e3948..712421d 100644
--- a/src/util/virnetdev.h
+++ b/src/util/virnetdev.h
@@ -229,6 +229,10 @@ int virNetDevGetPhysPortID(const char *ifname,
char **physPortID)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
G_GNUC_WARN_UNUSED_RESULT;
+int virNetDevGetPhysPortName(const char *ifname,
+ char **physPortName)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
+ G_GNUC_WARN_UNUSED_RESULT;
int virNetDevGetVirtualFunctions(const char *pfname,
char ***vfname,
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 47c671d..18b3f66 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -2409,8 +2409,10 @@ virPCIDeviceAddressGetSysfsFile(virPCIDeviceAddressPtr addr,
* virPCIGetNetName:
* @device_link_sysfs_path: sysfs path to the PCI device
* @idx: used to choose which netdev when there are several
- * (ignored if physPortID is set)
+ * (ignored if physPortID or physPortNameRegex is set)
* @physPortID: match this string in the netdev's phys_port_id
+ * (or NULL to ignore and use phys_port_name or idx instead)
+ * @physPortNameRegex: match this regex with netdev's phys_port_name
* (or NULL to ignore and use idx instead)
* @netname: used to return the name of the netdev
* (set to NULL (but returns success) if there is no netdev)
@@ -2421,11 +2423,13 @@ int
virPCIGetNetName(const char *device_link_sysfs_path,
size_t idx,
char *physPortID,
+ char *physPortNameRegex,
char **netname)
{
g_autofree char *pcidev_sysfs_net_path = NULL;
g_autofree char *firstEntryName = NULL;
g_autofree char *thisPhysPortID = NULL;
+ g_autofree char *thisPhysPortName = NULL;
int ret = -1;
DIR *dir = NULL;
struct dirent *entry = NULL;
@@ -2466,6 +2470,41 @@ virPCIGetNetName(const char *device_link_sysfs_path,
continue;
}
+ } else if (physPortNameRegex) {
+ /* Most switch devices use phys_port_name instead of
+ * phys_port_id.
+ * NOTE: VFs' representors net devices can be linked to PF's PCI
+ * device, which mean that there'll be multiple net devices
+ * instances and to get a proper net device need to match on
+ * specific regex.
+ * To get PF netdev, for ex., used following regex:
+ * "(p[0-9]+$)|(p[0-9]+s[0-9]+$)"
+ * or to get exact VF's netdev next regex is used:
+ * "pf0vf1$"
+ */
+ if (virNetDevGetPhysPortName(entry->d_name, &thisPhysPortName) < 0)
+ goto cleanup;
+
+ if (thisPhysPortName) {
+ /* if this one doesn't match, keep looking */
+ if (!virStringMatch(thisPhysPortName, physPortNameRegex)) {
+ VIR_FREE(thisPhysPortName);
+ /* Save the first entry we find to use as a failsafe
+ * in case we fail to match on regex.
+ */
+ if (!firstEntryName)
+ firstEntryName = g_strdup(entry->d_name);
+
+ continue;
+ }
+ } else {
+ /* Save the first entry we find to use as a failsafe in case
+ * phys_port_name is not supported.
+ */
+ if (!firstEntryName)
+ firstEntryName = g_strdup(entry->d_name);
+ continue;
+ }
} else {
if (i++ < idx)
continue;
@@ -2494,6 +2533,22 @@ virPCIGetNetName(const char *device_link_sysfs_path,
"phys_port_id '%s' under PCI device at %s"),
physPortID, device_link_sysfs_path);
}
+ } else if (physPortNameRegex) {
+ if (firstEntryName) {
+ /* We didn't match the provided phys_port_name regex, probably
+ * because kernel or NIC driver doesn't support it, so just
+ * return first netname we found.
+ */
+ *netname = firstEntryName;
+ firstEntryName = NULL;
+ ret = 0;
+ } else {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Could not find network device with "
+ "phys_port_name matching regex '%s' "
+ "under PCI device at %s"),
+ physPortNameRegex, device_link_sysfs_path);
+ }
} else {
ret = 0; /* no netdev at the given index is *not* an error */
}
@@ -2539,7 +2594,7 @@ virPCIGetVirtualFunctionInfo(const char *vf_sysfs_device_path,
* correct.
*/
if (pfNetDevIdx == -1) {
- if (virPCIGetNetName(vf_sysfs_device_path, 0, NULL, &vfname) < 0)
+ if (virPCIGetNetName(vf_sysfs_device_path, 0, NULL, NULL, &vfname) < 0)
goto cleanup;
if (vfname) {
@@ -2550,7 +2605,8 @@ virPCIGetVirtualFunctionInfo(const char *vf_sysfs_device_path,
}
if (virPCIGetNetName(pf_sysfs_device_path,
- pfNetDevIdx, vfPhysPortID, pfname) < 0) {
+ pfNetDevIdx, vfPhysPortID,
+ VIR_PF_PHYS_PORT_NAME_REGEX, pfname) < 0) {
goto cleanup;
}
@@ -2688,6 +2744,7 @@ int
virPCIGetNetName(const char *device_link_sysfs_path G_GNUC_UNUSED,
size_t idx G_GNUC_UNUSED,
char *physPortID G_GNUC_UNUSED,
+ char *physPortNameScheme G_GNUC_UNUSED,
char **netname G_GNUC_UNUSED)
{
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _(unsupported));
diff --git a/src/util/virpci.h b/src/util/virpci.h
index b3322ba..6ea0873 100644
--- a/src/util/virpci.h
+++ b/src/util/virpci.h
@@ -55,6 +55,11 @@ struct _virZPCIDeviceAddress {
#define VIR_PCI_DEVICE_ADDRESS_FMT "%04x:%02x:%02x.%d"
+/* Represents format of PF's phys_port_name in switchdev mode:
+ * 'p%u' or 'p%us%u'. New line checked since value is readed from sysfs file.
+ */
+# define VIR_PF_PHYS_PORT_NAME_REGEX ((char *)"(p[0-9]+$)|(p[0-9]+s[0-9]+$)")
+
struct _virPCIDeviceAddress {
unsigned int domain;
unsigned int bus;
@@ -232,6 +237,7 @@ int virPCIDeviceAddressGetSysfsFile(virPCIDeviceAddressPtr addr,
int virPCIGetNetName(const char *device_link_sysfs_path,
size_t idx,
char *physPortID,
+ char *physPortNameRegex,
char **netname);
int virPCIGetSysfsFile(char *virPCIDeviceName,
--
1.8.3.1
3 years, 11 months
[PATCH libvirt v1] tests: add capabilities for QEMU 5.1.0 on s390x
by Shalini Chellathurai Saroja
Signed-off-by: Shalini Chellathurai Saroja <shalini(a)linux.ibm.com>
---
The replies file is removed from this patch and is available in
https://gitlab.com/shalinichellathurai/libvirt/-/commit/1c34c07c434560d7f...
tests/domaincapsdata/qemu_5.1.0.s390x.xml | 230 +
.../caps_5.1.0.s390x.replies | 24617 ++++++++++++++++
.../qemucapabilitiesdata/caps_5.1.0.s390x.xml | 3278 ++
...default-video-type-s390x.s390x-latest.args | 2 +-
.../disk-error-policy-s390x.s390x-latest.args | 12 +-
.../fs9p-ccw.s390x-latest.args | 4 +-
...othreads-virtio-scsi-ccw.s390x-latest.args | 2 +-
...t-cpu-kvm-ccw-virtio-4.2.s390x-latest.args | 2 +-
.../s390x-ccw-graphics.s390x-latest.args | 4 +-
.../s390x-ccw-headless.s390x-latest.args | 4 +-
.../vhost-vsock-ccw-auto.s390x-latest.args | 4 +-
.../vhost-vsock-ccw.s390x-latest.args | 4 +-
12 files changed, 28144 insertions(+), 19 deletions(-)
create mode 100644 tests/domaincapsdata/qemu_5.1.0.s390x.xml
create mode 100644 tests/qemucapabilitiesdata/caps_5.1.0.s390x.replies
create mode 100644 tests/qemucapabilitiesdata/caps_5.1.0.s390x.xml
diff --git a/tests/domaincapsdata/qemu_5.1.0.s390x.xml b/tests/domaincapsdata/qemu_5.1.0.s390x.xml
new file mode 100644
index 00000000..42780349
--- /dev/null
+++ b/tests/domaincapsdata/qemu_5.1.0.s390x.xml
@@ -0,0 +1,230 @@
+<domainCapabilities>
+ <path>/usr/bin/qemu-system-s390x</path>
+ <domain>kvm</domain>
+ <machine>s390-ccw-virtio-5.1</machine>
+ <arch>s390x</arch>
+ <vcpu max='248'/>
+ <iothreads supported='yes'/>
+ <os supported='yes'>
+ <enum name='firmware'/>
+ <loader supported='yes'>
+ <value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
+ <value>/usr/share/AAVMF/AAVMF32_CODE.fd</value>
+ <value>/usr/share/OVMF/OVMF_CODE.fd</value>
+ <enum name='type'>
+ <value>rom</value>
+ <value>pflash</value>
+ </enum>
+ <enum name='readonly'>
+ <value>yes</value>
+ <value>no</value>
+ </enum>
+ <enum name='secure'>
+ <value>no</value>
+ </enum>
+ </loader>
+ </os>
+ <cpu>
+ <mode name='host-passthrough' supported='yes'>
+ <enum name='hostPassthroughMigratable'>
+ <value>off</value>
+ </enum>
+ </mode>
+ <mode name='host-model' supported='yes'>
+ <model fallback='forbid'>gen15a-base</model>
+ <feature policy='require' name='aen'/>
+ <feature policy='require' name='cmmnt'/>
+ <feature policy='require' name='vxpdeh'/>
+ <feature policy='require' name='aefsi'/>
+ <feature policy='require' name='csske'/>
+ <feature policy='require' name='mepoch'/>
+ <feature policy='require' name='msa9'/>
+ <feature policy='require' name='msa8'/>
+ <feature policy='require' name='msa7'/>
+ <feature policy='require' name='msa6'/>
+ <feature policy='require' name='msa5'/>
+ <feature policy='require' name='msa4'/>
+ <feature policy='require' name='msa3'/>
+ <feature policy='require' name='msa2'/>
+ <feature policy='require' name='msa1'/>
+ <feature policy='require' name='sthyi'/>
+ <feature policy='require' name='edat'/>
+ <feature policy='require' name='ri'/>
+ <feature policy='require' name='deflate'/>
+ <feature policy='require' name='edat2'/>
+ <feature policy='require' name='etoken'/>
+ <feature policy='require' name='vx'/>
+ <feature policy='require' name='ipter'/>
+ <feature policy='require' name='mepochptff'/>
+ <feature policy='require' name='ap'/>
+ <feature policy='require' name='vxeh'/>
+ <feature policy='require' name='vxpd'/>
+ <feature policy='require' name='esop'/>
+ <feature policy='require' name='msa9_pckmo'/>
+ <feature policy='require' name='vxeh2'/>
+ <feature policy='require' name='esort'/>
+ <feature policy='require' name='apqi'/>
+ <feature policy='require' name='apft'/>
+ <feature policy='require' name='iep'/>
+ <feature policy='require' name='apqci'/>
+ <feature policy='require' name='cte'/>
+ <feature policy='require' name='ais'/>
+ <feature policy='require' name='bpb'/>
+ <feature policy='require' name='gs'/>
+ <feature policy='require' name='ppa15'/>
+ <feature policy='require' name='zpci'/>
+ <feature policy='require' name='sea_esop2'/>
+ <feature policy='require' name='te'/>
+ <feature policy='require' name='cmm'/>
+ </mode>
+ <mode name='custom' supported='yes'>
+ <model usable='yes'>z800-base</model>
+ <model usable='yes'>z890.2-base</model>
+ <model usable='yes'>z9EC.2</model>
+ <model usable='yes'>z13.2</model>
+ <model usable='yes'>z9BC-base</model>
+ <model usable='yes'>z990.5-base</model>
+ <model usable='yes'>z890.2</model>
+ <model usable='yes'>z890</model>
+ <model usable='yes'>z9BC</model>
+ <model usable='yes'>z13</model>
+ <model usable='yes'>z196</model>
+ <model usable='yes'>z13s</model>
+ <model usable='yes'>z990.3</model>
+ <model usable='yes'>z13s-base</model>
+ <model usable='yes'>z9EC</model>
+ <model usable='yes'>gen15a</model>
+ <model usable='yes'>z14ZR1-base</model>
+ <model usable='yes'>z14.2-base</model>
+ <model usable='yes'>z900.3-base</model>
+ <model usable='yes'>z13.2-base</model>
+ <model usable='yes'>z196.2-base</model>
+ <model usable='yes'>zBC12-base</model>
+ <model usable='yes'>z9BC.2-base</model>
+ <model usable='yes'>z900.2-base</model>
+ <model usable='yes'>z9EC.3</model>
+ <model usable='yes'>zEC12</model>
+ <model usable='yes'>z900</model>
+ <model usable='yes'>z114-base</model>
+ <model usable='yes'>zEC12-base</model>
+ <model usable='yes'>z10EC.2</model>
+ <model usable='yes'>z10EC-base</model>
+ <model usable='yes'>z900.3</model>
+ <model usable='yes'>z14ZR1</model>
+ <model usable='yes'>z10BC</model>
+ <model usable='yes'>z10BC.2-base</model>
+ <model usable='yes'>z9BC.2</model>
+ <model usable='yes'>z990.2</model>
+ <model usable='yes'>z990</model>
+ <model usable='yes'>z14</model>
+ <model usable='yes'>gen15b-base</model>
+ <model usable='yes'>z990.4</model>
+ <model usable='yes'>max</model>
+ <model usable='yes'>z10EC.2-base</model>
+ <model usable='yes'>gen15a-base</model>
+ <model usable='yes'>z800</model>
+ <model usable='yes'>z10EC</model>
+ <model usable='yes'>zEC12.2</model>
+ <model usable='yes'>z990.2-base</model>
+ <model usable='yes'>z900-base</model>
+ <model usable='yes'>z10BC.2</model>
+ <model usable='yes'>z9EC-base</model>
+ <model usable='yes'>z9EC.3-base</model>
+ <model usable='yes'>z114</model>
+ <model usable='yes'>z890.3</model>
+ <model usable='yes'>z196-base</model>
+ <model usable='yes'>z9EC.2-base</model>
+ <model usable='yes'>z196.2</model>
+ <model usable='yes'>z14.2</model>
+ <model usable='yes'>z990-base</model>
+ <model usable='yes'>z900.2</model>
+ <model usable='yes'>z890-base</model>
+ <model usable='yes'>z10EC.3</model>
+ <model usable='yes'>z14-base</model>
+ <model usable='yes'>z990.4-base</model>
+ <model usable='yes'>z10EC.3-base</model>
+ <model usable='yes'>z10BC-base</model>
+ <model usable='yes'>z13-base</model>
+ <model usable='yes'>z990.3-base</model>
+ <model usable='yes'>zEC12.2-base</model>
+ <model usable='yes'>zBC12</model>
+ <model usable='yes'>z890.3-base</model>
+ <model usable='yes'>z990.5</model>
+ <model usable='yes'>gen15b</model>
+ <model usable='yes'>qemu</model>
+ </mode>
+ </cpu>
+ <devices>
+ <disk supported='yes'>
+ <enum name='diskDevice'>
+ <value>disk</value>
+ <value>cdrom</value>
+ <value>floppy</value>
+ <value>lun</value>
+ </enum>
+ <enum name='bus'>
+ <value>fdc</value>
+ <value>scsi</value>
+ <value>virtio</value>
+ </enum>
+ <enum name='model'>
+ <value>virtio</value>
+ <value>virtio-transitional</value>
+ <value>virtio-non-transitional</value>
+ </enum>
+ </disk>
+ <graphics supported='yes'>
+ <enum name='type'>
+ <value>sdl</value>
+ <value>vnc</value>
+ <value>egl-headless</value>
+ </enum>
+ </graphics>
+ <video supported='yes'>
+ <enum name='modelType'>
+ <value>virtio</value>
+ <value>none</value>
+ </enum>
+ </video>
+ <hostdev supported='yes'>
+ <enum name='mode'>
+ <value>subsystem</value>
+ </enum>
+ <enum name='startupPolicy'>
+ <value>default</value>
+ <value>mandatory</value>
+ <value>requisite</value>
+ <value>optional</value>
+ </enum>
+ <enum name='subsysType'>
+ <value>pci</value>
+ <value>scsi</value>
+ </enum>
+ <enum name='capsType'/>
+ <enum name='pciBackend'>
+ <value>default</value>
+ <value>vfio</value>
+ </enum>
+ </hostdev>
+ <rng supported='yes'>
+ <enum name='model'>
+ <value>virtio</value>
+ <value>virtio-transitional</value>
+ <value>virtio-non-transitional</value>
+ </enum>
+ <enum name='backendModel'>
+ <value>random</value>
+ <value>egd</value>
+ <value>builtin</value>
+ </enum>
+ </rng>
+ </devices>
+ <features>
+ <gic supported='no'/>
+ <vmcoreinfo supported='no'/>
+ <genid supported='no'/>
+ <backingStoreInput supported='yes'/>
+ <backup supported='no'/>
+ <sev supported='no'/>
+ </features>
+</domainCapabilities>
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.s390x.replies b/tests/qemucapabilitiesdata/caps_5.1.0.s390x.replies
new file mode 100644
index 00000000..ec3fd1f6
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_5.1.0.s390x.replies
@@ -0,0 +1,24617 @@
[...]
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.s390x.xml b/tests/qemucapabilitiesdata/caps_5.1.0.s390x.xml
new file mode 100644
index 00000000..af2647aa
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_5.1.0.s390x.xml
@@ -0,0 +1,3278 @@
+<qemuCaps>
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
+ <qemuctime>0</qemuctime>
+ <selfctime>0</selfctime>
+ <selfvers>0</selfvers>
+ <flag name='kvm'/>
+ <flag name='virtio-tx-alg'/>
+ <flag name='virtio-blk-pci.ioeventfd'/>
+ <flag name='virtio-blk-pci.event_idx'/>
+ <flag name='virtio-net-pci.event_idx'/>
+ <flag name='virtio-blk-pci.scsi'/>
+ <flag name='scsi-disk.channel'/>
+ <flag name='scsi-block'/>
+ <flag name='dump-guest-memory'/>
+ <flag name='virtio-scsi-pci'/>
+ <flag name='blockio'/>
+ <flag name='scsi-disk.wwn'/>
+ <flag name='seccomp-sandbox'/>
+ <flag name='reboot-timeout'/>
+ <flag name='vnc'/>
+ <flag name='device-video-primary'/>
+ <flag name='s390-sclp'/>
+ <flag name='nbd-server'/>
+ <flag name='virtio-rng'/>
+ <flag name='rng-random'/>
+ <flag name='rng-egd'/>
+ <flag name='virtio-ccw'/>
+ <flag name='pci-bridge'/>
+ <flag name='vfio-pci'/>
+ <flag name='mem-merge'/>
+ <flag name='drive-discard'/>
+ <flag name='boot-strict'/>
+ <flag name='enable-fips'/>
+ <flag name='msg-timestamp'/>
+ <flag name='active-commit'/>
+ <flag name='change-backing-file'/>
+ <flag name='memory-backend-ram'/>
+ <flag name='numa'/>
+ <flag name='memory-backend-file'/>
+ <flag name='splash-timeout'/>
+ <flag name='iothread'/>
+ <flag name='migrate-rdma'/>
+ <flag name='drive-iotune-max'/>
+ <flag name='machine-vmport-opt'/>
+ <flag name='aes-key-wrap'/>
+ <flag name='dea-key-wrap'/>
+ <flag name='vhost-user-multiqueue'/>
+ <flag name='migration-event'/>
+ <flag name='virtio-net'/>
+ <flag name='gic-version'/>
+ <flag name='incoming-defer'/>
+ <flag name='virtio-gpu'/>
+ <flag name='virtio-gpu.virgl'/>
+ <flag name='virtio-keyboard'/>
+ <flag name='virtio-mouse'/>
+ <flag name='virtio-tablet'/>
+ <flag name='virtio-input-host'/>
+ <flag name='chardev-file-append'/>
+ <flag name='vserport-change-event'/>
+ <flag name='virtio-balloon-pci.deflate-on-oom'/>
+ <flag name='chardev-logfile'/>
+ <flag name='debug-threads'/>
+ <flag name='secret'/>
+ <flag name='virtio-scsi-pci.iothread'/>
+ <flag name='name-guest'/>
+ <flag name='drive-detect-zeroes'/>
+ <flag name='tls-creds-x509'/>
+ <flag name='smm'/>
+ <flag name='virtio-pci-disable-legacy'/>
+ <flag name='query-hotpluggable-cpus'/>
+ <flag name='virtio-net.rx_queue_size'/>
+ <flag name='drive-iotune-max-length'/>
+ <flag name='query-qmp-schema'/>
+ <flag name='gluster.debug_level'/>
+ <flag name='vhost-scsi'/>
+ <flag name='drive-iotune-group'/>
+ <flag name='query-cpu-model-expansion'/>
+ <flag name='virtio-net.host_mtu'/>
+ <flag name='query-cpu-definitions'/>
+ <flag name='block-write-threshold'/>
+ <flag name='query-named-block-nodes'/>
+ <flag name='kernel-irqchip'/>
+ <flag name='kernel-irqchip.split'/>
+ <flag name='virtio.iommu_platform'/>
+ <flag name='virtio.ats'/>
+ <flag name='loadparm'/>
+ <flag name='vnc-multi-servers'/>
+ <flag name='virtio-net.tx_queue_size'/>
+ <flag name='chardev-reconnect'/>
+ <flag name='virtio-gpu.max_outputs'/>
+ <flag name='virtio-blk.num-queues'/>
+ <flag name='sclplmconsole'/>
+ <flag name='numa.dist'/>
+ <flag name='disk-share-rw'/>
+ <flag name='iscsi.password-secret'/>
+ <flag name='dump-completed'/>
+ <flag name='virtio-gpu-ccw'/>
+ <flag name='virtio-keyboard-ccw'/>
+ <flag name='virtio-mouse-ccw'/>
+ <flag name='virtio-tablet-ccw'/>
+ <flag name='qcow2-luks'/>
+ <flag name='seccomp-blacklist'/>
+ <flag name='query-cpus-fast'/>
+ <flag name='disk-write-cache'/>
+ <flag name='nbd-tls'/>
+ <flag name='pr-manager-helper'/>
+ <flag name='qom-list-properties'/>
+ <flag name='memory-backend-file.discard-data'/>
+ <flag name='virtual-css-bridge'/>
+ <flag name='virtual-css-bridge.cssid-unrestricted'/>
+ <flag name='vfio-ccw'/>
+ <flag name='sdl-gl'/>
+ <flag name='screendump_device'/>
+ <flag name='blockdev-del'/>
+ <flag name='vhost-vsock'/>
+ <flag name='chardev-fd-pass'/>
+ <flag name='egl-headless'/>
+ <flag name='vfio-pci.display'/>
+ <flag name='blockdev'/>
+ <flag name='vfio-ap'/>
+ <flag name='zpci'/>
+ <flag name='memory-backend-memfd'/>
+ <flag name='memory-backend-memfd.hugetlb'/>
+ <flag name='iothread.poll-max-ns'/>
+ <flag name='egl-headless.rendernode'/>
+ <flag name='memory-backend-file.align'/>
+ <flag name='memory-backend-file.pmem'/>
+ <flag name='scsi-disk.device_id'/>
+ <flag name='virtio-pci-non-transitional'/>
+ <flag name='overcommit'/>
+ <flag name='query-current-machine'/>
+ <flag name='bitmap-merge'/>
+ <flag name='nbd-bitmap'/>
+ <flag name='migration-file-drop-cache'/>
+ <flag name='dbus-vmstate'/>
+ <flag name='vhost-user-gpu'/>
+ <flag name='query-cpu-model-baseline'/>
+ <flag name='query-cpu-model-comparison'/>
+ <flag name='blockdev-file-dynamic-auto-read-only'/>
+ <flag name='savevm-monitor-nodes'/>
+ <flag name='drive-nvme'/>
+ <flag name='smp-dies'/>
+ <flag name='rng-builtin'/>
+ <flag name='virtio-net.failover'/>
+ <flag name='vhost-user-fs'/>
+ <flag name='query-named-block-nodes.flat'/>
+ <flag name='blockdev-snapshot.allow-write-only-overlay'/>
+ <flag name='storage.werror'/>
+ <flag name='fsdev.multidevs'/>
+ <flag name='virtio.packed'/>
+ <flag name='aio.io_uring'/>
+ <flag name='tcg'/>
+ <flag name='virtio-blk-pci.scsi.default.disabled'/>
+ <flag name='fw_cfg'/>
+ <flag name='migration-param.bandwidth'/>
+ <flag name='migration-param.downtime'/>
+ <flag name='migration-param.xbzrle-cache-size'/>
+ <flag name='numa.hmat'/>
+ <flag name='blockdev-hostdev-scsi'/>
+ <flag name='virtio-balloon.free-page-reporting'/>
+ <flag name='netdev.vhost-vdpa'/>
+ <flag name='fsdev.createmode'/>
+ <version>5001000</version>
+ <kvmVersion>0</kvmVersion>
+ <microcodeVersion>39100242</microcodeVersion>
+ <package>qemu-5.1.0-20201029.0.64aaebe0ca.fc32</package>
+ <arch>s390x</arch>
+ <hostCPU type='kvm' model='gen15a-base' migratability='no'>
+ <property name='aen' type='boolean' value='true'/>
+ <property name='cmmnt' type='boolean' value='true'/>
+ <property name='vxpdeh' type='boolean' value='true'/>
+ <property name='aefsi' type='boolean' value='true'/>
+ <property name='csske' type='boolean' value='true'/>
+ <property name='mepoch' type='boolean' value='true'/>
+ <property name='msa9' type='boolean' value='true'/>
+ <property name='msa8' type='boolean' value='true'/>
+ <property name='msa7' type='boolean' value='true'/>
+ <property name='msa6' type='boolean' value='true'/>
+ <property name='msa5' type='boolean' value='true'/>
+ <property name='msa4' type='boolean' value='true'/>
+ <property name='msa3' type='boolean' value='true'/>
+ <property name='msa2' type='boolean' value='true'/>
+ <property name='msa1' type='boolean' value='true'/>
+ <property name='sthyi' type='boolean' value='true'/>
+ <property name='edat' type='boolean' value='true'/>
+ <property name='ri' type='boolean' value='true'/>
+ <property name='deflate' type='boolean' value='true'/>
+ <property name='edat2' type='boolean' value='true'/>
+ <property name='etoken' type='boolean' value='true'/>
+ <property name='vx' type='boolean' value='true'/>
+ <property name='ipter' type='boolean' value='true'/>
+ <property name='mepochptff' type='boolean' value='true'/>
+ <property name='ap' type='boolean' value='true'/>
+ <property name='vxeh' type='boolean' value='true'/>
+ <property name='vxpd' type='boolean' value='true'/>
+ <property name='esop' type='boolean' value='true'/>
+ <property name='msa9_pckmo' type='boolean' value='true'/>
+ <property name='vxeh2' type='boolean' value='true'/>
+ <property name='esort' type='boolean' value='true'/>
+ <property name='apqi' type='boolean' value='true'/>
+ <property name='apft' type='boolean' value='true'/>
+ <property name='iep' type='boolean' value='true'/>
+ <property name='apqci' type='boolean' value='true'/>
+ <property name='cte' type='boolean' value='true'/>
+ <property name='ais' type='boolean' value='true'/>
+ <property name='bpb' type='boolean' value='true'/>
+ <property name='gs' type='boolean' value='true'/>
+ <property name='ppa15' type='boolean' value='true'/>
+ <property name='zpci' type='boolean' value='true'/>
+ <property name='sea_esop2' type='boolean' value='true'/>
+ <property name='te' type='boolean' value='true'/>
+ <property name='cmm' type='boolean' value='true'/>
+ </hostCPU>
+ <cpu type='kvm' name='z800-base' typename='z800-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z890.2-base' typename='z890.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9EC.2' typename='z9EC.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z13.2' typename='z13.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9BC-base' typename='z9BC-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990.5-base' typename='z990.5-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z890.2' typename='z890.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z890' typename='z890-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9BC' typename='z9BC-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z13' typename='z13-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z196' typename='z196-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z13s' typename='z13s-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='host' typename='host-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990.3' typename='z990.3-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z13s-base' typename='z13s-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9EC' typename='z9EC-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='gen15a' typename='gen15a-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z14ZR1-base' typename='z14ZR1-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z14.2-base' typename='z14.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z900.3-base' typename='z900.3-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z13.2-base' typename='z13.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z196.2-base' typename='z196.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='zBC12-base' typename='zBC12-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9BC.2-base' typename='z9BC.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z900.2-base' typename='z900.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9EC.3' typename='z9EC.3-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='zEC12' typename='zEC12-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z900' typename='z900-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z114-base' typename='z114-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='zEC12-base' typename='zEC12-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10EC.2' typename='z10EC.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10EC-base' typename='z10EC-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z900.3' typename='z900.3-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z14ZR1' typename='z14ZR1-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10BC' typename='z10BC-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10BC.2-base' typename='z10BC.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9BC.2' typename='z9BC.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990.2' typename='z990.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990' typename='z990-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z14' typename='z14-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='gen15b-base' typename='gen15b-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990.4' typename='z990.4-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='max' typename='max-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10EC.2-base' typename='z10EC.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='gen15a-base' typename='gen15a-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z800' typename='z800-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10EC' typename='z10EC-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='zEC12.2' typename='zEC12.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990.2-base' typename='z990.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z900-base' typename='z900-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10BC.2' typename='z10BC.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9EC-base' typename='z9EC-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9EC.3-base' typename='z9EC.3-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z114' typename='z114-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z890.3' typename='z890.3-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z196-base' typename='z196-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z9EC.2-base' typename='z9EC.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z196.2' typename='z196.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z14.2' typename='z14.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990-base' typename='z990-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z900.2' typename='z900.2-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z890-base' typename='z890-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10EC.3' typename='z10EC.3-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z14-base' typename='z14-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990.4-base' typename='z990.4-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10EC.3-base' typename='z10EC.3-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z10BC-base' typename='z10BC-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z13-base' typename='z13-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990.3-base' typename='z990.3-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='zEC12.2-base' typename='zEC12.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='zBC12' typename='zBC12-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z890.3-base' typename='z890.3-base-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='z990.5' typename='z990.5-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='gen15b' typename='gen15b-s390x-cpu' usable='yes'/>
+ <cpu type='kvm' name='qemu' typename='qemu-s390x-cpu' usable='yes'/>
+ <machine type='kvm' name='s390-ccw-virtio-5.1' alias='s390-ccw-virtio' hotplugCpus='yes' maxCpus='248' default='yes' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-4.0' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-3.1' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-2.6' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-2.12' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-2.9' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-3.0' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-4.2' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-2.5' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-2.11' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-2.8' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-5.0' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-4.1' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-2.4' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-2.10' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <machine type='kvm' name='s390-ccw-virtio-2.7' hotplugCpus='yes' maxCpus='248' defaultCPU='host-s390x-cpu'/>
+ <hostCPU type='tcg' model='z13.2-base' migratability='no'>
+ <property name='dateh2' type='boolean' value='false'/>
+ <property name='aen' type='boolean' value='true'/>
+ <property name='gen13ptff' type='boolean' value='false'/>
+ <property name='kmac-tdea-192' type='boolean' value='false'/>
+ <property name='kmc-tdea-192' type='boolean' value='false'/>
+ <property name='parseh' type='boolean' value='false'/>
+ <property name='aefsi' type='boolean' value='true'/>
+ <property name='csske' type='boolean' value='false'/>
+ <property name='hfpm' type='boolean' value='false'/>
+ <property name='hfpue' type='boolean' value='false'/>
+ <property name='dfp' type='boolean' value='false'/>
+ <property name='km-dea' type='boolean' value='false'/>
+ <property name='vx' type='boolean' value='true'/>
+ <property name='emon' type='boolean' value='false'/>
+ <property name='kimd-sha-1' type='boolean' value='false'/>
+ <property name='cmpsceh' type='boolean' value='false'/>
+ <property name='dfppc' type='boolean' value='false'/>
+ <property name='dfpzc' type='boolean' value='false'/>
+ <property name='dfphp' type='boolean' value='false'/>
+ <property name='kmc-dea' type='boolean' value='false'/>
+ <property name='klmd-sha-1' type='boolean' value='false'/>
+ <property name='asnlxr' type='boolean' value='false'/>
+ <property name='esop' type='boolean' value='true'/>
+ <property name='km-tdea-192' type='boolean' value='false'/>
+ <property name='km-tdea-128' type='boolean' value='false'/>
+ <property name='kmac-dea' type='boolean' value='false'/>
+ <property name='iep' type='boolean' value='true'/>
+ <property name='kmc-tdea-128' type='boolean' value='false'/>
+ <property name='ais' type='boolean' value='true'/>
+ <property name='kmac-tdea-128' type='boolean' value='false'/>
+ <property name='zpci' type='boolean' value='true'/>
+ <property name='nonqks' type='boolean' value='false'/>
+ <property name='sea_esop2' type='boolean' value='true'/>
+ <property name='pfpo' type='boolean' value='false'/>
+ <property name='msa4-base' type='boolean' value='true'/>
+ <property name='msa3-base' type='boolean' value='true'/>
+ <property name='msa5-base' type='boolean' value='true'/>
+ <property name='tods' type='boolean' value='false'/>
+ </hostCPU>
+ <cpu type='tcg' name='z800-base' typename='z800-base-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z890.2-base' typename='z890.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.2' typename='z9EC.2-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z13.2' typename='z13.2-s390x-cpu' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC-base' typename='z9BC-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z990.5-base' typename='z990.5-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z890.2' typename='z890.2-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z890' typename='z890-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC' typename='z9BC-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z13' typename='z13-s390x-cpu' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z196' typename='z196-s390x-cpu' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='sthyi'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z13s' typename='z13s-s390x-cpu' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='host' typename='host-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z990.3' typename='z990.3-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z13s-base' typename='z13s-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC' typename='z9EC-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='gen15a' typename='gen15a-s390x-cpu' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='etoken'/>
+ <blocker name='vxpdeh'/>
+ <blocker name='vxeh2'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='minste3'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='deflate'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa9_pckmo'/>
+ <blocker name='msa9'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z14ZR1-base' typename='z14ZR1-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z14.2-base' typename='z14.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z900.3-base' typename='z900.3-base-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z13.2-base' typename='z13.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z196.2-base' typename='z196.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='zBC12-base' typename='zBC12-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC.2-base' typename='z9BC.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z900.2-base' typename='z900.2-base-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z9EC.3' typename='z9EC.3-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12' typename='zEC12-s390x-cpu' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z900' typename='z900-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z114-base' typename='z114-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12-base' typename='zEC12-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC.2' typename='z10EC.2-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC-base' typename='z10EC-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z900.3' typename='z900.3-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z14ZR1' typename='z14ZR1-s390x-cpu' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC' typename='z10BC-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC.2-base' typename='z10BC.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC.2' typename='z9BC.2-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z990.2' typename='z990.2-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z990' typename='z990-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z14' typename='z14-s390x-cpu' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='gen15b-base' typename='gen15b-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='minste3'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.4' typename='z990.4-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='max' typename='max-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z10EC.2-base' typename='z10EC.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='gen15a-base' typename='gen15a-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='minste3'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z800' typename='z800-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z10EC' typename='z10EC-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12.2' typename='zEC12.2-s390x-cpu' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z990.2-base' typename='z990.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z900-base' typename='z900-base-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z10BC.2' typename='z10BC.2-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC-base' typename='z9EC-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.3-base' typename='z9EC.3-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z114' typename='z114-s390x-cpu' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='sthyi'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z890.3' typename='z890.3-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z196-base' typename='z196-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.2-base' typename='z9EC.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z196.2' typename='z196.2-s390x-cpu' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='sthyi'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z14.2' typename='z14.2-s390x-cpu' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990-base' typename='z990-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z900.2' typename='z900.2-s390x-cpu' usable='yes'/>
+ <cpu type='tcg' name='z890-base' typename='z890-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC.3' typename='z10EC.3-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z14-base' typename='z14-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.4-base' typename='z990.4-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC.3-base' typename='z10EC.3-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC-base' typename='z10BC-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z13-base' typename='z13-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z990.3-base' typename='z990.3-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12.2-base' typename='zEC12.2-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='zBC12' typename='zBC12-s390x-cpu' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='bpb'/>
+ <blocker name='ppa15'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ </cpu>
+ <cpu type='tcg' name='z890.3-base' typename='z890.3-base-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='z990.5' typename='z990.5-s390x-cpu' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ </cpu>
+ <cpu type='tcg' name='gen15b' typename='gen15b-s390x-cpu' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-aes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='etoken'/>
+ <blocker name='vxpdeh'/>
+ <blocker name='vxeh2'/>
+ <blocker name='mepoch'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='ppa15'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='ri'/>
+ <blocker name='minste3'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='opc'/>
+ <blocker name='emon'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='deflate'/>
+ <blocker name='mepochptff'/>
+ <blocker name='msa9_pckmo'/>
+ <blocker name='msa9'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='qemu' typename='qemu-s390x-cpu' usable='yes'/>
+ <machine type='tcg' name='s390-ccw-virtio-5.1' alias='s390-ccw-virtio' hotplugCpus='yes' maxCpus='248' default='yes' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-4.0' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-3.1' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-2.6' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-2.12' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-2.9' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-3.0' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-4.2' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-2.5' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-2.11' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-2.8' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-5.0' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-4.1' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-2.4' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-2.10' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+ <machine type='tcg' name='s390-ccw-virtio-2.7' hotplugCpus='yes' maxCpus='248' defaultCPU='qemu-s390x-cpu'/>
+</qemuCaps>
diff --git a/tests/qemuxml2argvdata/default-video-type-s390x.s390x-latest.args b/tests/qemuxml2argvdata/default-video-type-s390x.s390x-latest.args
index 47818085..fa81a7aa 100644
--- a/tests/qemuxml2argvdata/default-video-type-s390x.s390x-latest.args
+++ b/tests/qemuxml2argvdata/default-video-type-s390x.s390x-latest.args
@@ -17,7 +17,7 @@ file=/tmp/lib/domain--1-default-video-type-s/master-key.aes \
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,mepochptff=on,ap=on,\
vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,apqi=on,apft=on,iep=on,\
-apqci=on,cte=on,bpb=on,gs=on,ppa15=on,zpci=on,sea_esop2=on,te=on,cmm=on \
+apqci=on,cte=on,ais=on,bpb=on,gs=on,ppa15=on,zpci=on,sea_esop2=on,te=on,cmm=on \
-m 1024 \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/disk-error-policy-s390x.s390x-latest.args b/tests/qemuxml2argvdata/disk-error-policy-s390x.s390x-latest.args
index 414ffdba..ee0a08e8 100644
--- a/tests/qemuxml2argvdata/disk-error-policy-s390x.s390x-latest.args
+++ b/tests/qemuxml2argvdata/disk-error-policy-s390x.s390x-latest.args
@@ -32,24 +32,24 @@ file=/tmp/lib/domain--1-guest/master-key.aes \
-blockdev '{"node-name":"libvirt-3-format","read-only":false,\
"cache":{"direct":true,"no-flush":false},"driver":"qcow2",\
"file":"libvirt-3-storage"}' \
--device virtio-blk-ccw,scsi=off,devno=fe.0.0000,drive=libvirt-3-format,\
-id=virtio-disk0,bootindex=1,write-cache=on,werror=stop,rerror=stop \
+-device virtio-blk-ccw,devno=fe.0.0000,drive=libvirt-3-format,id=virtio-disk0,\
+bootindex=1,write-cache=on,werror=stop,rerror=stop \
-blockdev '{"driver":"file","filename":"/var/images/image2",\
"node-name":"libvirt-2-storage","cache":{"direct":true,"no-flush":false},\
"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":false,\
"cache":{"direct":true,"no-flush":false},"driver":"qcow2",\
"file":"libvirt-2-storage"}' \
--device virtio-blk-ccw,scsi=off,devno=fe.0.0001,drive=libvirt-2-format,\
-id=virtio-disk1,write-cache=on,werror=enospc \
+-device virtio-blk-ccw,devno=fe.0.0001,drive=libvirt-2-format,id=virtio-disk1,\
+write-cache=on,werror=enospc \
-blockdev '{"driver":"file","filename":"/var/images/image3",\
"node-name":"libvirt-1-storage","cache":{"direct":true,"no-flush":false},\
"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,\
"cache":{"direct":true,"no-flush":false},"driver":"qcow2",\
"file":"libvirt-1-storage"}' \
--device virtio-blk-ccw,scsi=off,devno=fe.0.0002,drive=libvirt-1-format,\
-id=virtio-disk2,write-cache=on,werror=report,rerror=ignore \
+-device virtio-blk-ccw,devno=fe.0.0002,drive=libvirt-1-format,id=virtio-disk2,\
+write-cache=on,werror=report,rerror=ignore \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
resourcecontrol=deny \
-msg timestamp=on
diff --git a/tests/qemuxml2argvdata/fs9p-ccw.s390x-latest.args b/tests/qemuxml2argvdata/fs9p-ccw.s390x-latest.args
index 50d4bc42..500cc0ad 100644
--- a/tests/qemuxml2argvdata/fs9p-ccw.s390x-latest.args
+++ b/tests/qemuxml2argvdata/fs9p-ccw.s390x-latest.args
@@ -30,8 +30,8 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
"file":"libvirt-1-storage"}' \
--device virtio-blk-ccw,scsi=off,devno=fe.0.0000,drive=libvirt-1-format,\
-id=virtio-disk0,bootindex=1 \
+-device virtio-blk-ccw,devno=fe.0.0000,drive=libvirt-1-format,id=virtio-disk0,\
+bootindex=1 \
-fsdev local,security_model=passthrough,id=fsdev-fs0,path=/export/to/guest \
-device virtio-9p-ccw,id=fs0,fsdev=fsdev-fs0,mount_tag=/import/from/host,\
devno=fe.0.0001 \
diff --git a/tests/qemuxml2argvdata/iothreads-virtio-scsi-ccw.s390x-latest.args b/tests/qemuxml2argvdata/iothreads-virtio-scsi-ccw.s390x-latest.args
index 20288f2a..ca343cbe 100644
--- a/tests/qemuxml2argvdata/iothreads-virtio-scsi-ccw.s390x-latest.args
+++ b/tests/qemuxml2argvdata/iothreads-virtio-scsi-ccw.s390x-latest.args
@@ -33,7 +33,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
"node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
"file":"libvirt-2-storage"}' \
--device virtio-blk-ccw,iothread=iothread1,scsi=off,devno=fe.0.0000,\
+-device virtio-blk-ccw,iothread=iothread1,devno=fe.0.0000,\
drive=libvirt-2-format,id=virtio-disk0,bootindex=1 \
-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest2",\
"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
diff --git a/tests/qemuxml2argvdata/s390-default-cpu-kvm-ccw-virtio-4.2.s390x-latest.args b/tests/qemuxml2argvdata/s390-default-cpu-kvm-ccw-virtio-4.2.s390x-latest.args
index 35093d4f..6da68d44 100644
--- a/tests/qemuxml2argvdata/s390-default-cpu-kvm-ccw-virtio-4.2.s390x-latest.args
+++ b/tests/qemuxml2argvdata/s390-default-cpu-kvm-ccw-virtio-4.2.s390x-latest.args
@@ -17,7 +17,7 @@ file=/tmp/lib/domain--1-test/master-key.aes \
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,mepochptff=on,ap=on,\
vxeh=on,vxpd=on,esop=on,msa9_pckmo=on,vxeh2=on,esort=on,apqi=on,apft=on,iep=on,\
-apqci=on,cte=on,bpb=on,gs=on,ppa15=on,zpci=on,sea_esop2=on,te=on,cmm=on \
+apqci=on,cte=on,ais=on,bpb=on,gs=on,ppa15=on,zpci=on,sea_esop2=on,te=on,cmm=on \
-m 256 \
-overcommit mem-lock=off \
-smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/s390x-ccw-graphics.s390x-latest.args b/tests/qemuxml2argvdata/s390x-ccw-graphics.s390x-latest.args
index 5850b265..529beddc 100644
--- a/tests/qemuxml2argvdata/s390x-ccw-graphics.s390x-latest.args
+++ b/tests/qemuxml2argvdata/s390x-ccw-graphics.s390x-latest.args
@@ -30,8 +30,8 @@ file=/tmp/lib/domain--1-guest/master-key.aes \
"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\
"file":"libvirt-1-storage"}' \
--device virtio-blk-ccw,scsi=off,devno=fe.0.0000,drive=libvirt-1-format,\
-id=virtio-disk0,bootindex=1 \
+-device virtio-blk-ccw,devno=fe.0.0000,drive=libvirt-1-format,id=virtio-disk0,\
+bootindex=1 \
-netdev user,id=hostnet0 \
-device virtio-net-ccw,netdev=hostnet0,id=net0,mac=52:54:00:09:1a:29,\
devno=fe.0.0001 \
diff --git a/tests/qemuxml2argvdata/s390x-ccw-headless.s390x-latest.args b/tests/qemuxml2argvdata/s390x-ccw-headless.s390x-latest.args
index 211cc24b..71282403 100644
--- a/tests/qemuxml2argvdata/s390x-ccw-headless.s390x-latest.args
+++ b/tests/qemuxml2argvdata/s390x-ccw-headless.s390x-latest.args
@@ -31,8 +31,8 @@ file=/tmp/lib/domain--1-guest/master-key.aes \
"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\
"file":"libvirt-1-storage"}' \
--device virtio-blk-ccw,scsi=off,devno=fe.0.0000,drive=libvirt-1-format,\
-id=virtio-disk0,bootindex=1 \
+-device virtio-blk-ccw,devno=fe.0.0000,drive=libvirt-1-format,id=virtio-disk0,\
+bootindex=1 \
-netdev user,id=hostnet0 \
-device virtio-net-ccw,netdev=hostnet0,id=net0,mac=52:54:00:09:a4:37,\
devno=fe.0.0001 \
diff --git a/tests/qemuxml2argvdata/vhost-vsock-ccw-auto.s390x-latest.args b/tests/qemuxml2argvdata/vhost-vsock-ccw-auto.s390x-latest.args
index 4c5542d8..e8956037 100644
--- a/tests/qemuxml2argvdata/vhost-vsock-ccw-auto.s390x-latest.args
+++ b/tests/qemuxml2argvdata/vhost-vsock-ccw-auto.s390x-latest.args
@@ -30,8 +30,8 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
"file":"libvirt-1-storage"}' \
--device virtio-blk-ccw,scsi=off,devno=fe.0.0000,drive=libvirt-1-format,\
-id=virtio-disk0,bootindex=1 \
+-device virtio-blk-ccw,devno=fe.0.0000,drive=libvirt-1-format,id=virtio-disk0,\
+bootindex=1 \
-device virtio-balloon-ccw,id=balloon0,devno=fe.0.0001 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/vhost-vsock-ccw.s390x-latest.args b/tests/qemuxml2argvdata/vhost-vsock-ccw.s390x-latest.args
index de229bd0..7199416d 100644
--- a/tests/qemuxml2argvdata/vhost-vsock-ccw.s390x-latest.args
+++ b/tests/qemuxml2argvdata/vhost-vsock-ccw.s390x-latest.args
@@ -30,8 +30,8 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
"file":"libvirt-1-storage"}' \
--device virtio-blk-ccw,scsi=off,devno=fe.0.0000,drive=libvirt-1-format,\
-id=virtio-disk0,bootindex=1 \
+-device virtio-blk-ccw,devno=fe.0.0000,drive=libvirt-1-format,id=virtio-disk0,\
+bootindex=1 \
-device virtio-balloon-ccw,id=balloon0,devno=fe.0.0001 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
resourcecontrol=deny \
--
2.26.2
3 years, 11 months
[PATCH] qemu: Relax memory pre-allocation rules
by Michal Privoznik
Currently, we configure QEMU to prealloc memory almost by
default. Well, by default for NVDIMMs, hugepages and if user
asked us to (via memoryBacking <allocation mode="immediate"/>).
However, there are two cases where this approach is not the best:
1) in case when guest's NVDIMM is backed by real life NVDIMM. In
this case users should put <pmem/> into the <memory/> device
<source/>, like this:
<memory model='nvdimm' access='shared'>
<source>
<path>/dev/pmem0</path>
<pmem/>
</source>
</memory>
Instructing QEMU to do prealloc in this case means that each
page of the NVDIMM is "touched" (the first byte is read and
written back - see QEMU commit v2.9.0-rc1~26^2) which cripples
device wear.
2) if free-page-reporting is turned on. While the
free-page-reporting feature might not have a catchy or obvious
name, when enabled it instructs KVM and subsequently QEMU to
free pages no longer used by guest resulting in smaller memory
footprint. And preallocating whole memory goes against this.
The BZ comment 11 mentions another, third case 'virtio-mem' but
that is not implemented in libvirt, yet.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1894053
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_command.c | 11 +++++++++--
.../memory-hotplug-nvdimm-pmem.x86_64-latest.args | 2 +-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 479bcc0b0c..3df8b5ac76 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2977,7 +2977,11 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backendProps,
if (discard == VIR_TRISTATE_BOOL_ABSENT)
discard = def->mem.discard;
- if (def->mem.allocation == VIR_DOMAIN_MEMORY_ALLOCATION_IMMEDIATE)
+ /* The whole point of free_page_reporting is that as soon as guest frees
+ * any memory it is freed in the host too. Prealloc doesn't make much sense
+ * then. */
+ if (def->mem.allocation == VIR_DOMAIN_MEMORY_ALLOCATION_IMMEDIATE &&
+ def->memballoon->free_page_reporting != VIR_TRISTATE_SWITCH_ON)
prealloc = true;
if (virDomainNumatuneGetMode(def->numa, mem->targetNode, &mode) < 0 &&
@@ -3064,7 +3068,10 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backendProps,
if (mem->nvdimmPath) {
memPath = g_strdup(mem->nvdimmPath);
- prealloc = true;
+ /* If the NVDIMM is a real device then there's nothing to prealloc.
+ * If anyhing, we would be only wearing off the device. */
+ if (!mem->nvdimmPmem)
+ prealloc = true;
} else if (useHugepage) {
if (qemuGetDomainHupageMemPath(priv->driver, def, pagesize, &memPath) < 0)
return -1;
diff --git a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args
index cac02a6f6d..fb4ae4b518 100644
--- a/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.x86_64-latest.args
@@ -20,7 +20,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
-object memory-backend-ram,id=ram-node0,size=224395264 \
-numa node,nodeid=0,cpus=0-1,memdev=ram-node0 \
-object memory-backend-file,id=memnvdimm0,mem-path=/tmp/nvdimm,share=no,\
-prealloc=yes,size=536870912,pmem=yes \
+size=536870912,pmem=yes \
-device nvdimm,node=0,memdev=memnvdimm0,id=nvdimm0,slot=0 \
-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
-display none \
--
2.26.2
3 years, 11 months
[libvirt PATCH v3 00/10] Add missing feature detection to sync tool in cpu_map
by Tim Wiederhake
sync_qemu_i386.py in src/cpu_map is a tool to sync CPU models from qemu
with libvirt. It currently has no provisions for detecting new features
that are not implemented in libvirt yet. This series changes that.
Currently missing x86 CPU models:
* "Denverton"
* "KnightsMill"
* "Snowridge"
Currently missing x86 CPU features:
* "core-capability"
* "fsrm"
* "split-lock-detect"
This series adds "core-capability", "fsrm", "split-lock-detect" and the
CPU model for "Snowridge".
V1: https://www.redhat.com/archives/libvir-list/2020-November/msg01002.html
V2: https://www.redhat.com/archives/libvir-list/2020-November/msg01023.html
Tim Wiederhake (10):
cpu_map: sync_qemu_cpu_i386: Factor out translation of vendors
cpu_map: sync_qemu_cpu_i386: Factor out translation of features
cpu_map: sync_qemu_cpu_i386: Translate features in model versions
cpu_map: sync_qemu_cpu_i386: Simplify ignore features
cpu_map: sync_qemu_cpu_i386: Add missing features to translation table
cpu_map: sync_qemu_cpu_i386: Detect features missing in libvirt
cpu_map: Add support for fsrm CPU feature
cpu_map: Add support for core-capability CPU feature
cpu_map: Add support for split-lock-detect CPU feature
cpu_map: Define and enable Snowridge model
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/sync_qemu_i386.py | 340 ++++++++++--------
src/cpu_map/x86_Snowridge.xml | 71 ++++
src/cpu_map/x86_features.xml | 11 +
.../x86_64-cpuid-Ice-Lake-Server-guest.xml | 1 +
.../x86_64-cpuid-Ice-Lake-Server-host.xml | 1 +
.../domaincapsdata/qemu_4.1.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_4.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_4.1.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 1 +
22 files changed, 294 insertions(+), 147 deletions(-)
create mode 100644 src/cpu_map/x86_Snowridge.xml
--
2.26.2
3 years, 11 months