* Mon Jan 06 2025 Miroslav Rezanina <mrezanin@redhat.com> - 9.1.0-9
- kvm-linux-headers-Update-to-Linux-v6.12-rc5.patch [RHEL-32665] - kvm-s390x-cpumodel-add-msa10-subfunctions.patch [RHEL-32665] - kvm-s390x-cpumodel-add-msa11-subfunctions.patch [RHEL-32665] - kvm-s390x-cpumodel-add-msa12-changes.patch [RHEL-32665] - kvm-s390x-cpumodel-add-msa13-subfunctions.patch [RHEL-32665] - kvm-s390x-cpumodel-Add-ptff-Query-Time-Stamp-Event-QTSE-.patch [RHEL-32665] - kvm-linux-headers-Update-to-Linux-6.13-rc1.patch [RHEL-32665] - kvm-s390x-cpumodel-add-Concurrent-functions-facility-sup.patch [RHEL-32665] - kvm-s390x-cpumodel-add-Vector-Enhancements-facility-3.patch [RHEL-32665] - kvm-s390x-cpumodel-add-Miscellaneous-Instruction-Extensi.patch [RHEL-32665] - kvm-s390x-cpumodel-add-Vector-Packed-Decimal-Enhancement.patch [RHEL-32665] - kvm-s390x-cpumodel-add-Ineffective-nonconstrained-transa.patch [RHEL-32665] - kvm-s390x-cpumodel-Add-Sequential-Instruction-Fetching-f.patch [RHEL-32665] - kvm-s390x-cpumodel-correct-PLO-feature-wording.patch [RHEL-32665] - kvm-s390x-cpumodel-Add-PLO-extension-facility.patch [RHEL-32665] - kvm-s390x-cpumodel-gen17-model.patch [RHEL-32665] - kvm-qga-skip-bind-mounts-in-fs-list.patch [RHEL-71939] - kvm-hw-char-pl011-Use-correct-masks-for-IBRD-and-FBRD.patch [RHEL-67108] - Resolves: RHEL-32665 ([IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part) - Resolves: RHEL-71939 (qemu-ga cannot freeze filesystems with sentinelone) - Resolves: RHEL-67108 ([aarch64] [rhel-10.0] Backport some important post 9.1 qemu fixes)
This commit is contained in:
parent
8b1cc39acd
commit
23c73bd3ca
67
kvm-hw-char-pl011-Use-correct-masks-for-IBRD-and-FBRD.patch
Normal file
67
kvm-hw-char-pl011-Use-correct-masks-for-IBRD-and-FBRD.patch
Normal file
@ -0,0 +1,67 @@
|
||||
From 133805a36691de83f0ca29165a2312d5ad4f0757 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Maydell <peter.maydell@linaro.org>
|
||||
Date: Mon, 14 Oct 2024 17:05:53 +0100
|
||||
Subject: [PATCH 18/18] hw/char/pl011: Use correct masks for IBRD and FBRD
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: sansshar <None>
|
||||
RH-MergeRequest: 311: hw/char/pl011: Use correct masks for IBRD and FBRD
|
||||
RH-Jira: RHEL-67108
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Commit: [1/1] e615ca34db8ee95533eba8cd671d620112e80cfb (sansshar/qemu-kvm-centos)
|
||||
|
||||
JIRA: RHEL-67108 <https://issues.redhat.com/browse/RHEL-67108>
|
||||
Brew build id: 5099404
|
||||
|
||||
In commit b88cfee90268cad we defined masks for the IBRD and FBRD
|
||||
integer and fractional baud rate divider registers, to prevent the
|
||||
guest from writing invalid values which could cause division-by-zero.
|
||||
Unfortunately we got the mask values the wrong way around: the FBRD
|
||||
register is six bits and the IBRD register is 16 bits, not
|
||||
vice-versa.
|
||||
|
||||
You would only run into this bug if you programmed the UART to a baud
|
||||
rate of less than 9600, because for 9600 baud and above the IBRD
|
||||
value will fit into 6 bits, as per the table in
|
||||
https://developer.arm.com/documentation/ddi0183/g/programmers-model/register-descriptions/fractional-baud-rate-register--uartfbrd
|
||||
|
||||
The only visible effects would be that the value read back from
|
||||
the register by the guest would be truncated, and we would
|
||||
print an incorrect baud rate in the debug logs.
|
||||
|
||||
Cc: qemu-stable@nongnu.org
|
||||
Fixes: b88cfee90268 ("hw/char/pl011: Avoid division-by-zero in pl011_get_baudrate()")
|
||||
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2610
|
||||
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
||||
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
|
||||
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||
Reviewed-by: Gavin Shan <gshan@redhat.com>
|
||||
Message-id: 20241007144732.2491331-1-peter.maydell@linaro.org
|
||||
(cherry picked from commit cd247eae16ab1b9ce97fd34c000c1b883feeda45)
|
||||
Signed-off-by: Sana Sharma <sansshar@redhat.com>
|
||||
---
|
||||
hw/char/pl011.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/char/pl011.c b/hw/char/pl011.c
|
||||
index f8078aa216..949e9d0e0d 100644
|
||||
--- a/hw/char/pl011.c
|
||||
+++ b/hw/char/pl011.c
|
||||
@@ -88,10 +88,10 @@ DeviceState *pl011_create(hwaddr addr, qemu_irq irq, Chardev *chr)
|
||||
#define CR_LBE (1 << 7)
|
||||
|
||||
/* Integer Baud Rate Divider, UARTIBRD */
|
||||
-#define IBRD_MASK 0x3f
|
||||
+#define IBRD_MASK 0xffff
|
||||
|
||||
/* Fractional Baud Rate Divider, UARTFBRD */
|
||||
-#define FBRD_MASK 0xffff
|
||||
+#define FBRD_MASK 0x3f
|
||||
|
||||
static const unsigned char pl011_id_arm[8] =
|
||||
{ 0x11, 0x10, 0x14, 0x00, 0x0d, 0xf0, 0x05, 0xb1 };
|
||||
--
|
||||
2.39.3
|
||||
|
1099
kvm-linux-headers-Update-to-Linux-6.13-rc1.patch
Normal file
1099
kvm-linux-headers-Update-to-Linux-6.13-rc1.patch
Normal file
File diff suppressed because it is too large
Load Diff
2559
kvm-linux-headers-Update-to-Linux-v6.12-rc5.patch
Normal file
2559
kvm-linux-headers-Update-to-Linux-v6.12-rc5.patch
Normal file
File diff suppressed because it is too large
Load Diff
94
kvm-qga-skip-bind-mounts-in-fs-list.patch
Normal file
94
kvm-qga-skip-bind-mounts-in-fs-list.patch
Normal file
@ -0,0 +1,94 @@
|
||||
From 5aec8bc4d0458e6011f5e0242a8f18bdba835af8 Mon Sep 17 00:00:00 2001
|
||||
From: Jean-Louis Dupond <jean-louis@dupond.be>
|
||||
Date: Wed, 2 Oct 2024 12:06:35 +0200
|
||||
Subject: [PATCH 17/18] qga: skip bind mounts in fs list
|
||||
|
||||
RH-Author: Konstantin Kostiuk <None>
|
||||
RH-MergeRequest: 307: qga: skip bind mounts in fs list
|
||||
RH-Jira: RHEL-71939
|
||||
RH-Acked-by: yvugenfi <None>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Commit: [1/1] 787cdc9477275959892800418ea37b76fce28ac3 (kkostiuk/redhat-centos-stream-src-qemu-kvm)
|
||||
|
||||
The filesystem list in build_fs_mount_list should skip bind mounts.
|
||||
This because we end up in locking situations when doing fsFreeze. Like
|
||||
mentioned in [1] and [2].
|
||||
|
||||
Next to that, the build_fs_mount_list call did a fallback via
|
||||
build_fs_mount_list_from_mtab if mountinfo did not exist.
|
||||
There it skipped bind mounts, but this is broken for newer OS.
|
||||
This as mounts does not return the path of the bind mount but the
|
||||
underlying dev/partition, so S_ISDIR will never return true in
|
||||
dev_major_minor call.
|
||||
|
||||
This patch simply checks the existing devmajor:devminor tuple in the
|
||||
mounts, and if it already exists, this means we have the same devices
|
||||
mounted again, a bind mount. So skip this.
|
||||
|
||||
Same approach is used in open-vm-tools [3].
|
||||
|
||||
[1]: https://gitlab.com/qemu-project/qemu/-/issues/592
|
||||
[2]: https://gitlab.com/qemu-project/qemu/-/issues/520
|
||||
[3]: https://github.com/vmware/open-vm-tools/commit/d58847b497e212737007958c945af1df22a8ab58
|
||||
|
||||
Signed-off-by: Jean-Louis Dupond <jean-louis@dupond.be>
|
||||
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||
Link: https://lore.kernel.org/r/20241002100634.162499-2-jean-louis@dupond.be
|
||||
Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||
---
|
||||
qga/commands-linux.c | 25 +++++++++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
diff --git a/qga/commands-linux.c b/qga/commands-linux.c
|
||||
index 51d5e3d927..426b040ab8 100644
|
||||
--- a/qga/commands-linux.c
|
||||
+++ b/qga/commands-linux.c
|
||||
@@ -59,6 +59,22 @@ static int dev_major_minor(const char *devpath,
|
||||
return -1;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Check if we already have the devmajor:devminor in the mounts
|
||||
+ * If thats the case return true.
|
||||
+ */
|
||||
+static bool dev_exists(FsMountList *mounts, unsigned int devmajor, unsigned int devminor)
|
||||
+{
|
||||
+ FsMount *mount;
|
||||
+
|
||||
+ QTAILQ_FOREACH(mount, mounts, next) {
|
||||
+ if (mount->devmajor == devmajor && mount->devminor == devminor) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
static bool build_fs_mount_list_from_mtab(FsMountList *mounts, Error **errp)
|
||||
{
|
||||
struct mntent *ment;
|
||||
@@ -89,6 +105,10 @@ static bool build_fs_mount_list_from_mtab(FsMountList *mounts, Error **errp)
|
||||
/* Skip bind mounts */
|
||||
continue;
|
||||
}
|
||||
+ if (dev_exists(mounts, devmajor, devminor)) {
|
||||
+ /* Skip already existing devices (bind mounts) */
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
mount = g_new0(FsMount, 1);
|
||||
mount->dirname = g_strdup(ment->mnt_dir);
|
||||
@@ -172,6 +192,11 @@ bool build_fs_mount_list(FsMountList *mounts, Error **errp)
|
||||
}
|
||||
}
|
||||
|
||||
+ if (dev_exists(mounts, devmajor, devminor)) {
|
||||
+ /* Skip already existing devices (bind mounts) */
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
mount = g_new0(FsMount, 1);
|
||||
mount->dirname = g_strdup(line + dir_s);
|
||||
mount->devtype = g_strdup(dash + type_s);
|
||||
--
|
||||
2.39.3
|
||||
|
221
kvm-s390x-cpumodel-Add-PLO-extension-facility.patch
Normal file
221
kvm-s390x-cpumodel-Add-PLO-extension-facility.patch
Normal file
@ -0,0 +1,221 @@
|
||||
From e4bdbc368426bc9aeb6dbfeeb2de46de1256861d Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:50 +0100
|
||||
Subject: [PATCH 15/18] s390x/cpumodel: Add PLO-extension facility
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [15/16] 6e8bb7b1f0e8c84ba0c3cd7e7714d22642402513 (thuth/qemu-kvm-cs9)
|
||||
|
||||
The PLO-extension facility introduces numerous locking related
|
||||
subfunctions.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-15-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit 393c835e341e8921d1d6ae45da308e85176c4f00)
|
||||
---
|
||||
target/s390x/cpu_features.c | 1 +
|
||||
target/s390x/cpu_features_def.h.inc | 39 +++++++++++++++++++++++++
|
||||
target/s390x/cpu_models.c | 38 ++++++++++++++++++++++++
|
||||
target/s390x/gen-features.c | 45 +++++++++++++++++++++++++++++
|
||||
4 files changed, 123 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
|
||||
index 5f8b02f12c..4b5be6798e 100644
|
||||
--- a/target/s390x/cpu_features.c
|
||||
+++ b/target/s390x/cpu_features.c
|
||||
@@ -240,6 +240,7 @@ void s390_get_deprecated_features(S390FeatBitmap features)
|
||||
/* indexed by feature group number for easy lookup */
|
||||
static S390FeatGroupDef s390_feature_groups[] = {
|
||||
FEAT_GROUP_INIT("plo", PLO, "Perform-locked-operation facility"),
|
||||
+ FEAT_GROUP_INIT("plo_ext", PLO_EXT, "PLO-extension facility"),
|
||||
FEAT_GROUP_INIT("tods", TOD_CLOCK_STEERING, "Tod-clock-steering facility"),
|
||||
FEAT_GROUP_INIT("gen13ptff", GEN13_PTFF, "PTFF enhancements introduced with z13"),
|
||||
FEAT_GROUP_INIT("gen17ptff", GEN17_PTFF, "PTFF enhancements introduced with gen17"),
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index fe7e1bd19c..e23e603a79 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -93,6 +93,7 @@ DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking")
|
||||
DEF_FEAT(MISC_INSTRUCTION_EXT4, "minste4", STFL, 84, "Miscellaneous-Instruction-Extensions Facility 4")
|
||||
DEF_FEAT(SIF, "sif", STFL, 85, "Sequential-instruction-fetching facility")
|
||||
DEF_FEAT(MSA_EXT_12, "msa12-base", STFL, 86, "Message-security-assist-extension-12 facility (excluding subfunctions)")
|
||||
+DEF_FEAT(PLO_EXT, "plo-ext", STFL, 87, "PLO-extension facility")
|
||||
DEF_FEAT(VECTOR, "vx", STFL, 129, "Vector facility")
|
||||
DEF_FEAT(INSTRUCTION_EXEC_PROT, "iep", STFL, 130, "Instruction-execution-protection facility")
|
||||
DEF_FEAT(SIDE_EFFECT_ACCESS_ESOP2, "sea_esop2", STFL, 131, "Side-effect-access facility and Enhanced-suppression-on-protection facility 2")
|
||||
@@ -180,6 +181,44 @@ DEF_FEAT(PLO_CSTST, "plo-cstst", PLO, 20, "PLO Compare and swap and triple store
|
||||
DEF_FEAT(PLO_CSTSTG, "plo-cststg", PLO, 21, "PLO Compare and swap and triple store (64 bit in parameter list)")
|
||||
DEF_FEAT(PLO_CSTSTGR, "plo-cststgr", PLO, 22, "PLO Compare and swap and triple store (64 bit in general registers)")
|
||||
DEF_FEAT(PLO_CSTSTX, "plo-cststx", PLO, 23, "PLO Compare and swap and triple store (128 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_CLO, "plo-clo", PLO, 24, "PLO Compare and load (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_CSO, "plo-cso", PLO, 25, "PLO Compare and swap (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_DCSO, "plo-dcso", PLO, 26, "PLO Double compare and swap (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_CSSTO, "plo-cssto", PLO, 27, "PLO Compare and swap and store (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_CSDSTO, "plo-csdsto", PLO, 28, "PLO Compare and swap and double store (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_CSTSTO, "plo-cststo", PLO, 29, "PLO Compare and swap and trible store (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TCS, "plo-tcs", PLO, 30, "Triple compare and swap (32 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TCSG, "plo-tcsg", PLO, 31, "Triple compare and swap (64 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TCSX, "plo-tcsx", PLO, 32, "Triple compare and swap (128 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TCSO, "plo-tcso", PLO, 33, "Triple compare and swap (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QCS, "plo-qcs", PLO, 34, "Quadruple compare and swap (32 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QCSG, "plo-qcsg", PLO, 35, "Quadruple compare and swap (64 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QCSX, "plo-qcsx", PLO, 36, "Quadruple compare and swap (128 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QCSO, "plo-qcso", PLO, 37, "Quadruple compare and swap (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_LO, "plo-lo", PLO, 38, "Load (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_DLX, "plo-dlx", PLO, 39, "Double load (128 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_DLO, "plo-dlo", PLO, 40, "Double load (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TL, "plo-tl", PLO, 41, "Triple load (32 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TLG, "plo-tlg", PLO, 42, "Triple load (64 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TLX, "plo-tlx", PLO, 43, "Triple load (128 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TLO, "plo-tlo", PLO, 44, "Triple load (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QL, "plo-ql", PLO, 45, "Quadruple load (32 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QLG, "plo-qlg", PLO, 46, "Quadruple load (64 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QLX, "plo-qlx", PLO, 47, "Quadruple load (128 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QLO, "plo-qlo", PLO, 48, "Quadruple load (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_STO, "plo-sto", PLO, 49, "Store (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_DST, "plo-dst", PLO, 50, "Double store (32 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_DSTG, "plo-dstg", PLO, 51, "Double store (64 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_DSTX, "plo-dstx", PLO, 52, "Double store (128 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_DSTO, "plo-dsto", PLO, 53, "Double store (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TST, "plo-tst", PLO, 54, "Triple store (32 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TSTG, "plo-tstg", PLO, 55, "Triple store (64 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TSTX, "plo-tstx", PLO, 56, "Triple store (128 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_TSTO, "plo-tsto", PLO, 57, "Triple store (256 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QST, "plo-qst", PLO, 58, "Quadruple store (32 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QSTG, "plo-qstg", PLO, 59, "Quadruple store (64 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QSTX, "plo-qstx", PLO, 60, "Quadruple store (128 bit in parameter list)")
|
||||
+DEF_FEAT(PLO_QSTO, "plo-qsto", PLO, 61, "Quadruple store (256 bit in parameter list)")
|
||||
|
||||
/* Features exposed via the PTFF instruction. */
|
||||
DEF_FEAT(PTFF_QTO, "ptff-qto", PTFF, 1, "PTFF Query TOD Offset")
|
||||
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||
index 9e9f6dae07..3fb5b0980e 100644
|
||||
--- a/target/s390x/cpu_models.c
|
||||
+++ b/target/s390x/cpu_models.c
|
||||
@@ -516,6 +516,44 @@ static void check_consistency(const S390CPUModel *model)
|
||||
{ S390_FEAT_PFCR_CSTST, S390_FEAT_CCF_BASE },
|
||||
{ S390_FEAT_PFCR_CSTSTG, S390_FEAT_CCF_BASE },
|
||||
{ S390_FEAT_INEFF_NC_TX, S390_FEAT_TRANSACTIONAL_EXE },
|
||||
+ { S390_FEAT_PLO_CLO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_CSO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_DCSO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_CSSTO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_CSDSTO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_CSTSTO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TCS, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TCSG, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TCSX, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TCSO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QCS, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QCSG, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QCSX, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QCSO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_LO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_DLX, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_DLO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TL, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TLG, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TLX, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TLO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QL, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QLG, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QLX, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QLO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_STO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_DST, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_DSTG, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_DSTX, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_DSTO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TST, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TSTG, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TSTX, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_TSTO, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QST, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QSTG, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QSTX, S390_FEAT_PLO_EXT },
|
||||
+ { S390_FEAT_PLO_QSTO, S390_FEAT_PLO_EXT },
|
||||
};
|
||||
int i;
|
||||
|
||||
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
|
||||
index 6d00ffcda7..680d45d303 100644
|
||||
--- a/target/s390x/gen-features.c
|
||||
+++ b/target/s390x/gen-features.c
|
||||
@@ -46,6 +46,47 @@
|
||||
S390_FEAT_PLO_CSTSTGR, \
|
||||
S390_FEAT_PLO_CSTSTX
|
||||
|
||||
+#define S390_FEAT_GROUP_PLO_EXT \
|
||||
+ S390_FEAT_PLO_EXT, \
|
||||
+ S390_FEAT_PLO_CLO, \
|
||||
+ S390_FEAT_PLO_CSO, \
|
||||
+ S390_FEAT_PLO_DCSO, \
|
||||
+ S390_FEAT_PLO_CSSTO, \
|
||||
+ S390_FEAT_PLO_CSDSTO, \
|
||||
+ S390_FEAT_PLO_CSTSTO, \
|
||||
+ S390_FEAT_PLO_TCS, \
|
||||
+ S390_FEAT_PLO_TCSG, \
|
||||
+ S390_FEAT_PLO_TCSX, \
|
||||
+ S390_FEAT_PLO_TCSO, \
|
||||
+ S390_FEAT_PLO_QCS, \
|
||||
+ S390_FEAT_PLO_QCSG, \
|
||||
+ S390_FEAT_PLO_QCSX, \
|
||||
+ S390_FEAT_PLO_QCSO, \
|
||||
+ S390_FEAT_PLO_LO, \
|
||||
+ S390_FEAT_PLO_DLX, \
|
||||
+ S390_FEAT_PLO_DLO, \
|
||||
+ S390_FEAT_PLO_TL, \
|
||||
+ S390_FEAT_PLO_TLG, \
|
||||
+ S390_FEAT_PLO_TLX, \
|
||||
+ S390_FEAT_PLO_TLO, \
|
||||
+ S390_FEAT_PLO_QL, \
|
||||
+ S390_FEAT_PLO_QLG, \
|
||||
+ S390_FEAT_PLO_QLX, \
|
||||
+ S390_FEAT_PLO_QLO, \
|
||||
+ S390_FEAT_PLO_STO, \
|
||||
+ S390_FEAT_PLO_DST, \
|
||||
+ S390_FEAT_PLO_DSTG, \
|
||||
+ S390_FEAT_PLO_DSTX, \
|
||||
+ S390_FEAT_PLO_DSTO, \
|
||||
+ S390_FEAT_PLO_TST, \
|
||||
+ S390_FEAT_PLO_TSTG, \
|
||||
+ S390_FEAT_PLO_TSTX, \
|
||||
+ S390_FEAT_PLO_TSTO, \
|
||||
+ S390_FEAT_PLO_QST, \
|
||||
+ S390_FEAT_PLO_QSTG, \
|
||||
+ S390_FEAT_PLO_QSTX, \
|
||||
+ S390_FEAT_PLO_QSTO
|
||||
+
|
||||
#define S390_FEAT_GROUP_TOD_CLOCK_STEERING \
|
||||
S390_FEAT_TOD_CLOCK_STEERING, \
|
||||
S390_FEAT_PTFF_QTO, \
|
||||
@@ -320,6 +361,9 @@
|
||||
static uint16_t group_PLO[] = {
|
||||
S390_FEAT_GROUP_PLO,
|
||||
};
|
||||
+static uint16_t group_PLO_EXT[] = {
|
||||
+ S390_FEAT_GROUP_PLO_EXT,
|
||||
+};
|
||||
static uint16_t group_TOD_CLOCK_STEERING[] = {
|
||||
S390_FEAT_GROUP_TOD_CLOCK_STEERING,
|
||||
};
|
||||
@@ -936,6 +980,7 @@ typedef struct {
|
||||
*******************************/
|
||||
static FeatGroupDefSpec FeatGroupDef[] = {
|
||||
FEAT_GROUP_INITIALIZER(PLO),
|
||||
+ FEAT_GROUP_INITIALIZER(PLO_EXT),
|
||||
FEAT_GROUP_INITIALIZER(TOD_CLOCK_STEERING),
|
||||
FEAT_GROUP_INITIALIZER(GEN13_PTFF),
|
||||
FEAT_GROUP_INITIALIZER(GEN17_PTFF),
|
||||
--
|
||||
2.39.3
|
||||
|
@ -0,0 +1,43 @@
|
||||
From dcfaf859fa755f9c75b1e848f1b61b293b500d0d Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:48 +0100
|
||||
Subject: [PATCH 13/18] s390x/cpumodel: Add Sequential-Instruction-Fetching
|
||||
facility
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [13/16] 5f8facceda9ecad3b417ed3da2d360fdd480f6d4 (thuth/qemu-kvm-cs9)
|
||||
|
||||
The sequential instruction fetching facility provides few guarantees,
|
||||
for example, to avoid stop machine calls on enabling/disabling kprobes.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-13-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit a5fa8bee72847406bfc32e15c8e41c0a2a0812e1)
|
||||
---
|
||||
target/s390x/cpu_features_def.h.inc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index 2c1d1cd98a..09a80844a7 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -91,6 +91,7 @@ DEF_FEAT(DFP_PACKED_CONVERSION, "dfppc", STFL, 80, "Decimal-floating-point packe
|
||||
DEF_FEAT(PPA15, "ppa15", STFL, 81, "PPA15 is installed")
|
||||
DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking")
|
||||
DEF_FEAT(MISC_INSTRUCTION_EXT4, "minste4", STFL, 84, "Miscellaneous-Instruction-Extensions Facility 4")
|
||||
+DEF_FEAT(SIF, "sif", STFL, 85, "Sequential-instruction-fetching facility")
|
||||
DEF_FEAT(MSA_EXT_12, "msa12-base", STFL, 86, "Message-security-assist-extension-12 facility (excluding subfunctions)")
|
||||
DEF_FEAT(VECTOR, "vx", STFL, 129, "Vector facility")
|
||||
DEF_FEAT(INSTRUCTION_EXEC_PROT, "iep", STFL, 130, "Instruction-execution-protection facility")
|
||||
--
|
||||
2.39.3
|
||||
|
@ -0,0 +1,90 @@
|
||||
From d1313d94cb0a2b69b18cf7e7531945cb131c23c2 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:41 +0100
|
||||
Subject: [PATCH 06/18] s390x/cpumodel: Add ptff Query Time-Stamp Event (QTSE)
|
||||
support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [6/16] f5642cffc8deb0caf96d59da72e82db435e28205 (thuth/qemu-kvm-cs9)
|
||||
|
||||
Introduce a new PTFF subfunction to query-stamp events.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-6-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit eba6f49128fbcf75d19acb6aef250d0664d03e9e)
|
||||
---
|
||||
target/s390x/cpu_features.c | 1 +
|
||||
target/s390x/cpu_features_def.h.inc | 1 +
|
||||
target/s390x/gen-features.c | 9 +++++++++
|
||||
3 files changed, 11 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
|
||||
index 9ba127e386..385a2ff860 100644
|
||||
--- a/target/s390x/cpu_features.c
|
||||
+++ b/target/s390x/cpu_features.c
|
||||
@@ -241,6 +241,7 @@ static S390FeatGroupDef s390_feature_groups[] = {
|
||||
FEAT_GROUP_INIT("plo", PLO, "Perform-locked-operation facility"),
|
||||
FEAT_GROUP_INIT("tods", TOD_CLOCK_STEERING, "Tod-clock-steering facility"),
|
||||
FEAT_GROUP_INIT("gen13ptff", GEN13_PTFF, "PTFF enhancements introduced with z13"),
|
||||
+ FEAT_GROUP_INIT("gen17ptff", GEN17_PTFF, "PTFF enhancements introduced with gen17"),
|
||||
FEAT_GROUP_INIT("msa", MSA, "Message-security-assist facility"),
|
||||
FEAT_GROUP_INIT("msa1", MSA_EXT_1, "Message-security-assist-extension 1 facility"),
|
||||
FEAT_GROUP_INIT("msa2", MSA_EXT_2, "Message-security-assist-extension 2 facility"),
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index 2132837ffe..f96cb5a7d8 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -181,6 +181,7 @@ DEF_FEAT(PTFF_QSI, "ptff-qsi", PTFF, 2, "PTFF Query Steering Information")
|
||||
DEF_FEAT(PTFF_QPT, "ptff-qpc", PTFF, 3, "PTFF Query Physical Clock")
|
||||
DEF_FEAT(PTFF_QUI, "ptff-qui", PTFF, 4, "PTFF Query UTC Information")
|
||||
DEF_FEAT(PTFF_QTOU, "ptff-qtou", PTFF, 5, "PTFF Query TOD Offset User")
|
||||
+DEF_FEAT(PTFF_QTSE, "ptff-qtse", PTFF, 6, "PTFF Query Time-Stamp Event")
|
||||
DEF_FEAT(PTFF_QSIE, "ptff-qsie", PTFF, 10, "PTFF Query Steering Information Extended")
|
||||
DEF_FEAT(PTFF_QTOUE, "ptff-qtoue", PTFF, 13, "PTFF Query TOD Offset User Extended")
|
||||
DEF_FEAT(PTFF_STO, "ptff-sto", PTFF, 65, "PTFF Set TOD Offset")
|
||||
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
|
||||
index 3326e7df43..302b653214 100644
|
||||
--- a/target/s390x/gen-features.c
|
||||
+++ b/target/s390x/gen-features.c
|
||||
@@ -64,6 +64,9 @@
|
||||
S390_FEAT_PTFF_STOE, \
|
||||
S390_FEAT_PTFF_STOUE
|
||||
|
||||
+#define S390_FEAT_GROUP_GEN17_PTFF \
|
||||
+ S390_FEAT_PTFF_QTSE
|
||||
+
|
||||
#define S390_FEAT_GROUP_MSA \
|
||||
S390_FEAT_MSA, \
|
||||
S390_FEAT_KMAC_DEA, \
|
||||
@@ -318,6 +321,11 @@ static uint16_t group_GEN13_PTFF[] = {
|
||||
static uint16_t group_MULTIPLE_EPOCH_PTFF[] = {
|
||||
S390_FEAT_GROUP_MULTIPLE_EPOCH_PTFF,
|
||||
};
|
||||
+
|
||||
+static uint16_t group_GEN17_PTFF[] = {
|
||||
+ S390_FEAT_GROUP_GEN17_PTFF,
|
||||
+};
|
||||
+
|
||||
static uint16_t group_MSA[] = {
|
||||
S390_FEAT_GROUP_MSA,
|
||||
};
|
||||
@@ -918,6 +926,7 @@ static FeatGroupDefSpec FeatGroupDef[] = {
|
||||
FEAT_GROUP_INITIALIZER(PLO),
|
||||
FEAT_GROUP_INITIALIZER(TOD_CLOCK_STEERING),
|
||||
FEAT_GROUP_INITIALIZER(GEN13_PTFF),
|
||||
+ FEAT_GROUP_INITIALIZER(GEN17_PTFF),
|
||||
FEAT_GROUP_INITIALIZER(MSA),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_1),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_2),
|
||||
--
|
||||
2.39.3
|
||||
|
169
kvm-s390x-cpumodel-add-Concurrent-functions-facility-sup.patch
Normal file
169
kvm-s390x-cpumodel-add-Concurrent-functions-facility-sup.patch
Normal file
@ -0,0 +1,169 @@
|
||||
From 66725d6be2ad779432d3b02a0ad20a415bd37f1f Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:43 +0100
|
||||
Subject: [PATCH 08/18] s390x/cpumodel: add Concurrent-functions facility
|
||||
support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [8/16] 891c3efec3d7dbce03e01f0fcb61cca9669570eb (thuth/qemu-kvm-cs9)
|
||||
|
||||
The Concurrent-functions facility introduces the new instruction
|
||||
Perform Functions with Concurrent Results (PFCR) with few subfunctions.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-8-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit c9ea365dce32bc114dacd7cfca7c478a82459b47)
|
||||
---
|
||||
target/s390x/cpu_features.c | 2 ++
|
||||
target/s390x/cpu_features.h | 1 +
|
||||
target/s390x/cpu_features_def.h.inc | 8 ++++++++
|
||||
target/s390x/cpu_models.c | 5 +++++
|
||||
target/s390x/gen-features.c | 13 +++++++++++++
|
||||
target/s390x/kvm/kvm.c | 6 ++++++
|
||||
6 files changed, 35 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
|
||||
index 385a2ff860..5f8b02f12c 100644
|
||||
--- a/target/s390x/cpu_features.c
|
||||
+++ b/target/s390x/cpu_features.c
|
||||
@@ -93,6 +93,7 @@ void s390_fill_feat_block(const S390FeatBitmap features, S390FeatType type,
|
||||
case S390_FEAT_TYPE_KDSA:
|
||||
case S390_FEAT_TYPE_SORTL:
|
||||
case S390_FEAT_TYPE_DFLTCC:
|
||||
+ case S390_FEAT_TYPE_PFCR:
|
||||
set_be_bit(0, data); /* query is always available */
|
||||
break;
|
||||
default:
|
||||
@@ -263,6 +264,7 @@ static S390FeatGroupDef s390_feature_groups[] = {
|
||||
FEAT_GROUP_INIT("mepochptff", MULTIPLE_EPOCH_PTFF, "PTFF enhancements introduced with Multiple-epoch facility"),
|
||||
FEAT_GROUP_INIT("esort", ENH_SORT, "Enhanced-sort facility"),
|
||||
FEAT_GROUP_INIT("deflate", DEFLATE_CONVERSION, "Deflate-conversion facility"),
|
||||
+ FEAT_GROUP_INIT("ccf", CONCURRENT_FUNCTIONS, "Concurrent-functions facility"),
|
||||
};
|
||||
|
||||
const S390FeatGroupDef *s390_feat_group_def(S390FeatGroup group)
|
||||
diff --git a/target/s390x/cpu_features.h b/target/s390x/cpu_features.h
|
||||
index 661a8cd6db..5635839d03 100644
|
||||
--- a/target/s390x/cpu_features.h
|
||||
+++ b/target/s390x/cpu_features.h
|
||||
@@ -44,6 +44,7 @@ typedef enum {
|
||||
S390_FEAT_TYPE_SORTL,
|
||||
S390_FEAT_TYPE_DFLTCC,
|
||||
S390_FEAT_TYPE_UV_FEAT_GUEST,
|
||||
+ S390_FEAT_TYPE_PFCR,
|
||||
} S390FeatType;
|
||||
|
||||
/* Definition of a CPU feature */
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index f96cb5a7d8..09872ab3d8 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -116,6 +116,7 @@ DEF_FEAT(BEAR_ENH, "beareh", STFL, 193, "BEAR-enhancement facility")
|
||||
DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility")
|
||||
DEF_FEAT(PAI, "pai", STFL, 196, "Processor-Activity-Instrumentation facility")
|
||||
DEF_FEAT(PAIE, "paie", STFL, 197, "Processor-Activity-Instrumentation extension-1")
|
||||
+DEF_FEAT(CCF_BASE, "ccf-base", STFL, 201, "Concurrent-Functions facility")
|
||||
|
||||
/* Features exposed via SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */
|
||||
DEF_FEAT(SIE_GSLS, "gsls", SCLP_CONF_CHAR, 40, "SIE: Guest-storage-limit-suppression facility")
|
||||
@@ -413,3 +414,10 @@ DEF_FEAT(DEFLATE_F0, "dfltcc-f0", DFLTCC, 192, "DFLTCC format 0 parameter-block"
|
||||
/* Features exposed via the UV-CALL instruction */
|
||||
DEF_FEAT(UV_FEAT_AP, "appv", UV_FEAT_GUEST, 4, "AP instructions installed for secure guests")
|
||||
DEF_FEAT(UV_FEAT_AP_INTR, "appvi", UV_FEAT_GUEST, 5, "AP instructions interruption support for secure guests")
|
||||
+
|
||||
+/* Features exposed via the PFCR instruction (concurrent-functions facility). */
|
||||
+DEF_FEAT(PFCR_QAF, "pfcr-qaf", PFCR, 0, "PFCR Query-Available-Functions")
|
||||
+DEF_FEAT(PFCR_CSDST, "pfcr-csdst", PFCR, 1, "PFCR Compare-and-Swap-and-Double-Store (32)")
|
||||
+DEF_FEAT(PFCR_CSDSTG, "pfcr-csdstg", PFCR, 2, "PFCR Compare-and-Swap-and-Double-Store (64)")
|
||||
+DEF_FEAT(PFCR_CSTST, "pfcr-cstst", PFCR, 3, "PFCR Compare-and-Swap-and-Triple-Store (32)")
|
||||
+DEF_FEAT(PFCR_CSTSTG, "pfcr-cststg", PFCR, 4, "PFCR Compare-and-Swap-and-Triple-Store (64)")
|
||||
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||
index da441b7b10..cb45911ac0 100644
|
||||
--- a/target/s390x/cpu_models.c
|
||||
+++ b/target/s390x/cpu_models.c
|
||||
@@ -507,6 +507,11 @@ static void check_consistency(const S390CPUModel *model)
|
||||
{ S390_FEAT_RDP, S390_FEAT_LOCAL_TLB_CLEARING },
|
||||
{ S390_FEAT_UV_FEAT_AP, S390_FEAT_AP },
|
||||
{ S390_FEAT_UV_FEAT_AP_INTR, S390_FEAT_UV_FEAT_AP },
|
||||
+ { S390_FEAT_PFCR_QAF, S390_FEAT_CCF_BASE },
|
||||
+ { S390_FEAT_PFCR_CSDST, S390_FEAT_CCF_BASE },
|
||||
+ { S390_FEAT_PFCR_CSDSTG, S390_FEAT_CCF_BASE },
|
||||
+ { S390_FEAT_PFCR_CSTST, S390_FEAT_CCF_BASE },
|
||||
+ { S390_FEAT_PFCR_CSTSTG, S390_FEAT_CCF_BASE },
|
||||
};
|
||||
int i;
|
||||
|
||||
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
|
||||
index 302b653214..6d00ffcda7 100644
|
||||
--- a/target/s390x/gen-features.c
|
||||
+++ b/target/s390x/gen-features.c
|
||||
@@ -308,6 +308,14 @@
|
||||
S390_FEAT_DEFLATE_XPND, \
|
||||
S390_FEAT_DEFLATE_F0
|
||||
|
||||
+#define S390_FEAT_GROUP_CONCURRENT_FUNCTIONS \
|
||||
+ S390_FEAT_CCF_BASE, \
|
||||
+ S390_FEAT_PFCR_QAF, \
|
||||
+ S390_FEAT_PFCR_CSDST, \
|
||||
+ S390_FEAT_PFCR_CSDSTG, \
|
||||
+ S390_FEAT_PFCR_CSTST, \
|
||||
+ S390_FEAT_PFCR_CSTSTG
|
||||
+
|
||||
/* cpu feature groups */
|
||||
static uint16_t group_PLO[] = {
|
||||
S390_FEAT_GROUP_PLO,
|
||||
@@ -398,6 +406,10 @@ static uint16_t group_DEFLATE_CONVERSION[] = {
|
||||
S390_FEAT_GROUP_DEFLATE_CONVERSION,
|
||||
};
|
||||
|
||||
+static uint16_t group_CONCURRENT_FUNCTIONS[] = {
|
||||
+ S390_FEAT_GROUP_CONCURRENT_FUNCTIONS,
|
||||
+};
|
||||
+
|
||||
/* Base features (in order of release)
|
||||
* Only non-hypervisor managed features belong here.
|
||||
* Base feature sets are static meaning they do not change in future QEMU
|
||||
@@ -948,6 +960,7 @@ static FeatGroupDefSpec FeatGroupDef[] = {
|
||||
FEAT_GROUP_INITIALIZER(MULTIPLE_EPOCH_PTFF),
|
||||
FEAT_GROUP_INITIALIZER(ENH_SORT),
|
||||
FEAT_GROUP_INITIALIZER(DEFLATE_CONVERSION),
|
||||
+ FEAT_GROUP_INITIALIZER(CONCURRENT_FUNCTIONS),
|
||||
};
|
||||
|
||||
#define QEMU_FEAT_INITIALIZER(_name) \
|
||||
diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c
|
||||
index 8ffe0159d8..dd0322c43a 100644
|
||||
--- a/target/s390x/kvm/kvm.c
|
||||
+++ b/target/s390x/kvm/kvm.c
|
||||
@@ -2195,6 +2195,9 @@ static int query_cpu_subfunc(S390FeatBitmap features)
|
||||
if (test_bit(S390_FEAT_DEFLATE_BASE, features)) {
|
||||
s390_add_from_feat_block(features, S390_FEAT_TYPE_DFLTCC, prop.dfltcc);
|
||||
}
|
||||
+ if (test_bit(S390_FEAT_CCF_BASE, features)) {
|
||||
+ s390_add_from_feat_block(features, S390_FEAT_TYPE_PFCR, prop.pfcr);
|
||||
+ }
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2248,6 +2251,9 @@ static int configure_cpu_subfunc(const S390FeatBitmap features)
|
||||
if (test_bit(S390_FEAT_DEFLATE_BASE, features)) {
|
||||
s390_fill_feat_block(features, S390_FEAT_TYPE_DFLTCC, prop.dfltcc);
|
||||
}
|
||||
+ if (test_bit(S390_FEAT_CCF_BASE, features)) {
|
||||
+ s390_fill_feat_block(features, S390_FEAT_TYPE_PFCR, prop.pfcr);
|
||||
+ }
|
||||
return kvm_vm_ioctl(kvm_state, KVM_SET_DEVICE_ATTR, &attr);
|
||||
}
|
||||
|
||||
--
|
||||
2.39.3
|
||||
|
@ -0,0 +1,56 @@
|
||||
From e54ca265e81453305c96adce3e521d543ac124a6 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:47 +0100
|
||||
Subject: [PATCH 12/18] s390x/cpumodel: add
|
||||
Ineffective-nonconstrained-transaction facility
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [12/16] 1a5530bb0a42f5771a46bb21934b77035d26aa54 (thuth/qemu-kvm-cs9)
|
||||
|
||||
This facility indicates reduced support for noncontrained
|
||||
transactional-execution.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-12-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit 12417b713c1fffc26c680e99e3429f055eb9af2e)
|
||||
---
|
||||
target/s390x/cpu_features_def.h.inc | 1 +
|
||||
target/s390x/cpu_models.c | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index df154d145f..2c1d1cd98a 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -112,6 +112,7 @@ DEF_FEAT(MSA_EXT_9, "msa9-base", STFL, 155, "Message-security-assist-extension-9
|
||||
DEF_FEAT(ETOKEN, "etoken", STFL, 156, "Etoken facility")
|
||||
DEF_FEAT(UNPACK, "unpack", STFL, 161, "Unpack facility")
|
||||
DEF_FEAT(NNPA, "nnpa", STFL, 165, "NNPA facility")
|
||||
+DEF_FEAT(INEFF_NC_TX, "ineff_nc_tx", STFL, 170, "Ineffective-nonconstrained-transaction facility")
|
||||
DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH2, "vxpdeh2", STFL, 192, "Vector-Packed-Decimal-Enhancement facility 2")
|
||||
DEF_FEAT(BEAR_ENH, "beareh", STFL, 193, "BEAR-enhancement facility")
|
||||
DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility")
|
||||
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||
index 94cc6a0f3e..9e9f6dae07 100644
|
||||
--- a/target/s390x/cpu_models.c
|
||||
+++ b/target/s390x/cpu_models.c
|
||||
@@ -515,6 +515,7 @@ static void check_consistency(const S390CPUModel *model)
|
||||
{ S390_FEAT_PFCR_CSDSTG, S390_FEAT_CCF_BASE },
|
||||
{ S390_FEAT_PFCR_CSTST, S390_FEAT_CCF_BASE },
|
||||
{ S390_FEAT_PFCR_CSTSTG, S390_FEAT_CCF_BASE },
|
||||
+ { S390_FEAT_INEFF_NC_TX, S390_FEAT_TRANSACTIONAL_EXE },
|
||||
};
|
||||
int i;
|
||||
|
||||
--
|
||||
2.39.3
|
||||
|
@ -0,0 +1,42 @@
|
||||
From f836a70baeebc6cfff87f3b8cf39bc82225cd88f Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:45 +0100
|
||||
Subject: [PATCH 10/18] s390x/cpumodel: add
|
||||
Miscellaneous-Instruction-Extensions Facility 4
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [10/16] 375acf46d9a9950c939e0bf95c6512f6df3b3b3d (thuth/qemu-kvm-cs9)
|
||||
|
||||
This facility introduces few new instructions.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-10-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit e68e5ea6fe87c0177ea6421045c1d46f223a861e)
|
||||
---
|
||||
target/s390x/cpu_features_def.h.inc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index 0b7be0e6e9..8be2e0e46d 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -90,6 +90,7 @@ DEF_FEAT(EDAT_2, "edat2", STFL, 78, "Enhanced-DAT facility 2")
|
||||
DEF_FEAT(DFP_PACKED_CONVERSION, "dfppc", STFL, 80, "Decimal-floating-point packed-conversion facility")
|
||||
DEF_FEAT(PPA15, "ppa15", STFL, 81, "PPA15 is installed")
|
||||
DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking")
|
||||
+DEF_FEAT(MISC_INSTRUCTION_EXT4, "minste4", STFL, 84, "Miscellaneous-Instruction-Extensions Facility 4")
|
||||
DEF_FEAT(MSA_EXT_12, "msa12-base", STFL, 86, "Message-security-assist-extension-12 facility (excluding subfunctions)")
|
||||
DEF_FEAT(VECTOR, "vx", STFL, 129, "Vector facility")
|
||||
DEF_FEAT(INSTRUCTION_EXEC_PROT, "iep", STFL, 130, "Instruction-execution-protection facility")
|
||||
--
|
||||
2.39.3
|
||||
|
56
kvm-s390x-cpumodel-add-Vector-Enhancements-facility-3.patch
Normal file
56
kvm-s390x-cpumodel-add-Vector-Enhancements-facility-3.patch
Normal file
@ -0,0 +1,56 @@
|
||||
From 38d15311c53d6f973ad6bcffe5a851fed58d82cf Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:44 +0100
|
||||
Subject: [PATCH 09/18] s390x/cpumodel: add Vector Enhancements facility 3
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [9/16] 0e28c1a3a458b035a165e6d0f6e65290efce4cf0 (thuth/qemu-kvm-cs9)
|
||||
|
||||
The Vector Enhancements facility 3 introduces new instructions and
|
||||
extends support for doubleword/quadword elements.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-9-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit 0b2c66a3fa5ccecf26ea011d97d65a986b42b4d8)
|
||||
---
|
||||
target/s390x/cpu_features_def.h.inc | 1 +
|
||||
target/s390x/cpu_models.c | 2 ++
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index 09872ab3d8..0b7be0e6e9 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -116,6 +116,7 @@ DEF_FEAT(BEAR_ENH, "beareh", STFL, 193, "BEAR-enhancement facility")
|
||||
DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility")
|
||||
DEF_FEAT(PAI, "pai", STFL, 196, "Processor-Activity-Instrumentation facility")
|
||||
DEF_FEAT(PAIE, "paie", STFL, 197, "Processor-Activity-Instrumentation extension-1")
|
||||
+DEF_FEAT(VECTOR_ENH3, "vxeh3", STFL, 198, "Vector Enhancements facility 3")
|
||||
DEF_FEAT(CCF_BASE, "ccf-base", STFL, 201, "Concurrent-Functions facility")
|
||||
|
||||
/* Features exposed via SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */
|
||||
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||
index cb45911ac0..5fb5c6f38e 100644
|
||||
--- a/target/s390x/cpu_models.c
|
||||
+++ b/target/s390x/cpu_models.c
|
||||
@@ -461,6 +461,8 @@ static void check_consistency(const S390CPUModel *model)
|
||||
{ S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL },
|
||||
{ S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH },
|
||||
{ S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR },
|
||||
+ { S390_FEAT_VECTOR_ENH2, S390_FEAT_VECTOR_ENH },
|
||||
+ { S390_FEAT_VECTOR_ENH3, S390_FEAT_VECTOR_ENH2 },
|
||||
{ S390_FEAT_INSTRUCTION_EXEC_PROT, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2 },
|
||||
{ S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2, S390_FEAT_ESOP },
|
||||
{ S390_FEAT_CMM_NT, S390_FEAT_CMM },
|
||||
--
|
||||
2.39.3
|
||||
|
@ -0,0 +1,56 @@
|
||||
From 846d00e369c2ff33201c4a7ae4a303f4feb82c8f Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:46 +0100
|
||||
Subject: [PATCH 11/18] s390x/cpumodel: add Vector-Packed-Decimal-Enhancement
|
||||
facility 3
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [11/16] 4ab6618fe8fda8277fc92d0de6505df034f8c9fe (thuth/qemu-kvm-cs9)
|
||||
|
||||
This facility introduces new capabilities for the signed-pack-decimal
|
||||
format.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-11-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit db4c208abde53a7ed16d566bf63a3520894bba8d)
|
||||
---
|
||||
target/s390x/cpu_features_def.h.inc | 1 +
|
||||
target/s390x/cpu_models.c | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index 8be2e0e46d..df154d145f 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -118,6 +118,7 @@ DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility")
|
||||
DEF_FEAT(PAI, "pai", STFL, 196, "Processor-Activity-Instrumentation facility")
|
||||
DEF_FEAT(PAIE, "paie", STFL, 197, "Processor-Activity-Instrumentation extension-1")
|
||||
DEF_FEAT(VECTOR_ENH3, "vxeh3", STFL, 198, "Vector Enhancements facility 3")
|
||||
+DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH3, "vxpdeh3", STFL, 199, "Vector-Packed-Decimal-Enhancement facility 3")
|
||||
DEF_FEAT(CCF_BASE, "ccf-base", STFL, 201, "Concurrent-Functions facility")
|
||||
|
||||
/* Features exposed via SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */
|
||||
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||
index 5fb5c6f38e..94cc6a0f3e 100644
|
||||
--- a/target/s390x/cpu_models.c
|
||||
+++ b/target/s390x/cpu_models.c
|
||||
@@ -460,6 +460,7 @@ static void check_consistency(const S390CPUModel *model)
|
||||
{ S390_FEAT_VECTOR_PACKED_DECIMAL, S390_FEAT_VECTOR },
|
||||
{ S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL },
|
||||
{ S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH },
|
||||
+ { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2 },
|
||||
{ S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR },
|
||||
{ S390_FEAT_VECTOR_ENH2, S390_FEAT_VECTOR_ENH },
|
||||
{ S390_FEAT_VECTOR_ENH3, S390_FEAT_VECTOR_ENH2 },
|
||||
--
|
||||
2.39.3
|
||||
|
133
kvm-s390x-cpumodel-add-msa10-subfunctions.patch
Normal file
133
kvm-s390x-cpumodel-add-msa10-subfunctions.patch
Normal file
@ -0,0 +1,133 @@
|
||||
From be8c87d33304948258dad5e46582c588ff795344 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:37 +0100
|
||||
Subject: [PATCH 02/18] s390x/cpumodel: add msa10 subfunctions
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [2/16] 967e78e0d496cf5241bfcee7b96b0308b5cedbda (thuth/qemu-kvm-cs9)
|
||||
|
||||
MSA10 introduces new AES XTS subfunctions.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-2-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit 1029cd5b9827ba6aa7f5e02eed1928a928e2fa5e)
|
||||
---
|
||||
target/s390x/cpu_features.c | 2 ++
|
||||
target/s390x/cpu_features_def.h.inc | 6 ++++++
|
||||
target/s390x/cpu_models.c | 4 ++++
|
||||
target/s390x/gen-features.c | 20 ++++++++++++++++++++
|
||||
4 files changed, 32 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
|
||||
index cb4e2b8920..a3c239595a 100644
|
||||
--- a/target/s390x/cpu_features.c
|
||||
+++ b/target/s390x/cpu_features.c
|
||||
@@ -252,6 +252,8 @@ static S390FeatGroupDef s390_feature_groups[] = {
|
||||
FEAT_GROUP_INIT("msa8", MSA_EXT_8, "Message-security-assist-extension 8 facility"),
|
||||
FEAT_GROUP_INIT("msa9", MSA_EXT_9, "Message-security-assist-extension 9 facility"),
|
||||
FEAT_GROUP_INIT("msa9_pckmo", MSA_EXT_9_PCKMO, "Message-security-assist-extension 9 PCKMO subfunctions"),
|
||||
+ FEAT_GROUP_INIT("msa10", MSA_EXT_10, "Message-security-assist-extension 10 facility"),
|
||||
+ FEAT_GROUP_INIT("msa10_pckmo", MSA_EXT_10_PCKMO, "Message-security-assist-extension 10 PCKMO subfunctions"),
|
||||
FEAT_GROUP_INIT("mepochptff", MULTIPLE_EPOCH_PTFF, "PTFF enhancements introduced with Multiple-epoch facility"),
|
||||
FEAT_GROUP_INIT("esort", ENH_SORT, "Enhanced-sort facility"),
|
||||
FEAT_GROUP_INIT("deflate", DEFLATE_CONVERSION, "Deflate-conversion facility"),
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index c53ac13352..104d186c3f 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -233,6 +233,10 @@ DEF_FEAT(KM_XTS_AES_128, "km-xts-aes-128", KM, 50, "KM XTS-AES-128")
|
||||
DEF_FEAT(KM_XTS_AES_256, "km-xts-aes-256", KM, 52, "KM XTS-AES-256")
|
||||
DEF_FEAT(KM_XTS_EAES_128, "km-xts-eaes-128", KM, 58, "KM XTS-Encrypted-AES-128")
|
||||
DEF_FEAT(KM_XTS_EAES_256, "km-xts-eaes-256", KM, 60, "KM XTS-Encrypted-AES-256")
|
||||
+DEF_FEAT(KM_FULL_XTS_AES_128, "km-full-xts-aes-128", KM, 82, "KM Full-XTS-AES-128")
|
||||
+DEF_FEAT(KM_FULL_XTS_AES_256, "km-full-xts-aes-256", KM, 84, "KM Full-XTS-AES-256")
|
||||
+DEF_FEAT(KM_FULL_XTS_EAES_128, "km-full-xts-eaes-128", KM, 90, "KM Full-XTS-Encrypted-AES-128")
|
||||
+DEF_FEAT(KM_FULL_XTS_EAES_256, "km-full-xts-eaes-256", KM, 92, "KM Full-XTS-Encrypted-AES-256")
|
||||
|
||||
/* Features exposed via the KIMD instruction. */
|
||||
DEF_FEAT(KIMD_SHA_1, "kimd-sha-1", KIMD, 1, "KIMD SHA-1")
|
||||
@@ -264,6 +268,8 @@ DEF_FEAT(PCKMO_ETDEA_256, "pckmo-etdea-192", PCKMO, 3, "PCKMO Encrypted-TDEA-192
|
||||
DEF_FEAT(PCKMO_AES_128, "pckmo-aes-128", PCKMO, 18, "PCKMO Encrypted-AES-128-Key")
|
||||
DEF_FEAT(PCKMO_AES_192, "pckmo-aes-192", PCKMO, 19, "PCKMO Encrypted-AES-192-Key")
|
||||
DEF_FEAT(PCKMO_AES_256, "pckmo-aes-256", PCKMO, 20, "PCKMO Encrypted-AES-256-Key")
|
||||
+DEF_FEAT(PCKMO_AES_XTS_128_DK, "pckmo-aes-xts-128-dk", PCKMO, 21, "PCKMO Encrypt-AES-XTS-128-Double-Key")
|
||||
+DEF_FEAT(PCKMO_AES_XTS_256_DK, "pckmo-aes-xts-256-dk", PCKMO, 22, "PCKMO Encrypt-AES-XTS-256-Double-Key")
|
||||
DEF_FEAT(PCKMO_ECC_P256, "pckmo-ecc-p256", PCKMO, 32, "PCKMO Encrypt-ECC-P256-Key")
|
||||
DEF_FEAT(PCKMO_ECC_P384, "pckmo-ecc-p384", PCKMO, 33, "PCKMO Encrypt-ECC-P384-Key")
|
||||
DEF_FEAT(PCKMO_ECC_P521, "pckmo-ecc-p521", PCKMO, 34, "PCKMO Encrypt-ECC-P521-Key")
|
||||
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||
index 8afa9af1a5..e71c445379 100644
|
||||
--- a/target/s390x/cpu_models.c
|
||||
+++ b/target/s390x/cpu_models.c
|
||||
@@ -480,6 +480,10 @@ static void check_consistency(const S390CPUModel *model)
|
||||
{ S390_FEAT_KLMD_SHA3_512, S390_FEAT_MSA },
|
||||
{ S390_FEAT_KLMD_SHAKE_128, S390_FEAT_MSA },
|
||||
{ S390_FEAT_KLMD_SHAKE_256, S390_FEAT_MSA },
|
||||
+ { S390_FEAT_KM_FULL_XTS_AES_128, S390_FEAT_MSA_EXT_4 },
|
||||
+ { S390_FEAT_KM_FULL_XTS_AES_256, S390_FEAT_MSA_EXT_4 },
|
||||
+ { S390_FEAT_KM_FULL_XTS_EAES_128, S390_FEAT_MSA_EXT_4 },
|
||||
+ { S390_FEAT_KM_FULL_XTS_EAES_256, S390_FEAT_MSA_EXT_4 },
|
||||
{ S390_FEAT_PRNO_TRNG_QRTCR, S390_FEAT_MSA_EXT_5 },
|
||||
{ S390_FEAT_PRNO_TRNG, S390_FEAT_MSA_EXT_5 },
|
||||
{ S390_FEAT_SIE_KSS, S390_FEAT_SIE_F2 },
|
||||
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
|
||||
index 2b2bfc3736..06c3bf64f3 100644
|
||||
--- a/target/s390x/gen-features.c
|
||||
+++ b/target/s390x/gen-features.c
|
||||
@@ -246,6 +246,16 @@
|
||||
S390_FEAT_PCKMO_ECC_ED25519, \
|
||||
S390_FEAT_PCKMO_ECC_ED448
|
||||
|
||||
+#define S390_FEAT_GROUP_MSA_EXT_10 \
|
||||
+ S390_FEAT_KM_FULL_XTS_AES_128, \
|
||||
+ S390_FEAT_KM_FULL_XTS_AES_256, \
|
||||
+ S390_FEAT_KM_FULL_XTS_EAES_128, \
|
||||
+ S390_FEAT_KM_FULL_XTS_EAES_256
|
||||
+
|
||||
+#define S390_FEAT_GROUP_MSA_EXT_10_PCKMO \
|
||||
+ S390_FEAT_PCKMO_AES_XTS_128_DK, \
|
||||
+ S390_FEAT_PCKMO_AES_XTS_256_DK
|
||||
+
|
||||
#define S390_FEAT_GROUP_ENH_SORT \
|
||||
S390_FEAT_ESORT_BASE, \
|
||||
S390_FEAT_SORTL_SFLR, \
|
||||
@@ -307,10 +317,18 @@ static uint16_t group_MSA_EXT_9[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_9,
|
||||
};
|
||||
|
||||
+static uint16_t group_MSA_EXT_10[] = {
|
||||
+ S390_FEAT_GROUP_MSA_EXT_10,
|
||||
+};
|
||||
+
|
||||
static uint16_t group_MSA_EXT_9_PCKMO[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_9_PCKMO,
|
||||
};
|
||||
|
||||
+static uint16_t group_MSA_EXT_10_PCKMO[] = {
|
||||
+ S390_FEAT_GROUP_MSA_EXT_10_PCKMO,
|
||||
+};
|
||||
+
|
||||
static uint16_t group_ENH_SORT[] = {
|
||||
S390_FEAT_GROUP_ENH_SORT,
|
||||
};
|
||||
@@ -858,6 +876,8 @@ static FeatGroupDefSpec FeatGroupDef[] = {
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_8),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_9),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_9_PCKMO),
|
||||
+ FEAT_GROUP_INITIALIZER(MSA_EXT_10),
|
||||
+ FEAT_GROUP_INITIALIZER(MSA_EXT_10_PCKMO),
|
||||
FEAT_GROUP_INITIALIZER(MULTIPLE_EPOCH_PTFF),
|
||||
FEAT_GROUP_INITIALIZER(ENH_SORT),
|
||||
FEAT_GROUP_INITIALIZER(DEFLATE_CONVERSION),
|
||||
--
|
||||
2.39.3
|
||||
|
148
kvm-s390x-cpumodel-add-msa11-subfunctions.patch
Normal file
148
kvm-s390x-cpumodel-add-msa11-subfunctions.patch
Normal file
@ -0,0 +1,148 @@
|
||||
From 328b55dd31fce9e849d8dd10124cda47013d3035 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:38 +0100
|
||||
Subject: [PATCH 03/18] s390x/cpumodel: add msa11 subfunctions
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [3/16] 8b4158361a17d973fa30a7bcb9d911a2c5a42b14 (thuth/qemu-kvm-cs9)
|
||||
|
||||
MSA11 introduces new HMAC subfunctions.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-3-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit 11dc9020824c81552b021fbe0e2910e0348e7f8e)
|
||||
---
|
||||
target/s390x/cpu_features.c | 2 ++
|
||||
target/s390x/cpu_features_def.h.inc | 10 ++++++++++
|
||||
target/s390x/cpu_models.c | 8 ++++++++
|
||||
target/s390x/gen-features.c | 24 ++++++++++++++++++++++++
|
||||
4 files changed, 44 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
|
||||
index a3c239595a..36930feccd 100644
|
||||
--- a/target/s390x/cpu_features.c
|
||||
+++ b/target/s390x/cpu_features.c
|
||||
@@ -254,6 +254,8 @@ static S390FeatGroupDef s390_feature_groups[] = {
|
||||
FEAT_GROUP_INIT("msa9_pckmo", MSA_EXT_9_PCKMO, "Message-security-assist-extension 9 PCKMO subfunctions"),
|
||||
FEAT_GROUP_INIT("msa10", MSA_EXT_10, "Message-security-assist-extension 10 facility"),
|
||||
FEAT_GROUP_INIT("msa10_pckmo", MSA_EXT_10_PCKMO, "Message-security-assist-extension 10 PCKMO subfunctions"),
|
||||
+ FEAT_GROUP_INIT("msa11", MSA_EXT_11, "Message-security-assist-extension 11 facility"),
|
||||
+ FEAT_GROUP_INIT("msa11_pckmo", MSA_EXT_11_PCKMO, "Message-security-assist-extension 11 PCKMO subfunctions"),
|
||||
FEAT_GROUP_INIT("mepochptff", MULTIPLE_EPOCH_PTFF, "PTFF enhancements introduced with Multiple-epoch facility"),
|
||||
FEAT_GROUP_INIT("esort", ENH_SORT, "Enhanced-sort facility"),
|
||||
FEAT_GROUP_INIT("deflate", DEFLATE_CONVERSION, "Deflate-conversion facility"),
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index 104d186c3f..15ea51fc54 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -200,6 +200,14 @@ DEF_FEAT(KMAC_AES_256, "kmac-aes-256", KMAC, 20, "KMAC AES-256")
|
||||
DEF_FEAT(KMAC_EAES_128, "kmac-eaes-128", KMAC, 26, "KMAC Encrypted-AES-128")
|
||||
DEF_FEAT(KMAC_EAES_192, "kmac-eaes-192", KMAC, 27, "KMAC Encrypted-AES-192")
|
||||
DEF_FEAT(KMAC_EAES_256, "kmac-eaes-256", KMAC, 28, "KMAC Encrypted-AES-256")
|
||||
+DEF_FEAT(KMAC_HMAC_SHA_224, "kmac-hmac-sha-224", KMAC, 112, "KMAC HMAC-SHA-224")
|
||||
+DEF_FEAT(KMAC_HMAC_SHA_256, "kmac-hmac-sha-246", KMAC, 113, "KMAC HMAC-SHA-256")
|
||||
+DEF_FEAT(KMAC_HMAC_SHA_384, "kmac-hmac-sha-384", KMAC, 114, "KMAC HMAC-SHA-384")
|
||||
+DEF_FEAT(KMAC_HMAC_SHA_512, "kmac-hmac-sha-512", KMAC, 115, "KMAC HMAC-SHA-512")
|
||||
+DEF_FEAT(KMAC_HMAC_ESHA_224, "kmac-hmac-esha-224", KMAC, 120, "KMAC HMAC-Encrypted-SHA-224")
|
||||
+DEF_FEAT(KMAC_HMAC_ESHA_256, "kmac-hmac-esha-246", KMAC, 121, "KMAC HMAC-Encrypted-SHA-256")
|
||||
+DEF_FEAT(KMAC_HMAC_ESHA_384, "kmac-hmac-esha-384", KMAC, 122, "KMAC HMAC-Encrypted-SHA-384")
|
||||
+DEF_FEAT(KMAC_HMAC_ESHA_512, "kmac-hmac-esha-512", KMAC, 123, "KMAC HMAC-Encrypted-SHA-512")
|
||||
|
||||
/* Features exposed via the KMC instruction. */
|
||||
DEF_FEAT(KMC_DEA, "kmc-dea", KMC, 1, "KMC DEA")
|
||||
@@ -275,6 +283,8 @@ DEF_FEAT(PCKMO_ECC_P384, "pckmo-ecc-p384", PCKMO, 33, "PCKMO Encrypt-ECC-P384-Ke
|
||||
DEF_FEAT(PCKMO_ECC_P521, "pckmo-ecc-p521", PCKMO, 34, "PCKMO Encrypt-ECC-P521-Key")
|
||||
DEF_FEAT(PCKMO_ECC_ED25519, "pckmo-ecc-ed25519", PCKMO, 40 , "PCKMO Encrypt-ECC-Ed25519-Key")
|
||||
DEF_FEAT(PCKMO_ECC_ED448, "pckmo-ecc-ed448", PCKMO, 41 , "PCKMO Encrypt-ECC-Ed448-Key")
|
||||
+DEF_FEAT(PCKMO_HMAC_512, "pckmo-hmac-512", PCKMO, 118, "PCKMO Encrypt-HMAC-512-Key")
|
||||
+DEF_FEAT(PCKMO_HMAC_1024, "pckmo-hmac-1024", PCKMO, 122, "PCKMO Encrypt-HMAC-1024-Key")
|
||||
|
||||
/* Features exposed via the KMCTR instruction. */
|
||||
DEF_FEAT(KMCTR_DEA, "kmctr-dea", KMCTR, 1, "KMCTR DEA")
|
||||
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||
index e71c445379..da441b7b10 100644
|
||||
--- a/target/s390x/cpu_models.c
|
||||
+++ b/target/s390x/cpu_models.c
|
||||
@@ -480,6 +480,14 @@ static void check_consistency(const S390CPUModel *model)
|
||||
{ S390_FEAT_KLMD_SHA3_512, S390_FEAT_MSA },
|
||||
{ S390_FEAT_KLMD_SHAKE_128, S390_FEAT_MSA },
|
||||
{ S390_FEAT_KLMD_SHAKE_256, S390_FEAT_MSA },
|
||||
+ { S390_FEAT_KMAC_HMAC_SHA_224, S390_FEAT_MSA_EXT_3 },
|
||||
+ { S390_FEAT_KMAC_HMAC_SHA_256, S390_FEAT_MSA_EXT_3 },
|
||||
+ { S390_FEAT_KMAC_HMAC_SHA_384, S390_FEAT_MSA_EXT_3 },
|
||||
+ { S390_FEAT_KMAC_HMAC_SHA_512, S390_FEAT_MSA_EXT_3 },
|
||||
+ { S390_FEAT_KMAC_HMAC_ESHA_224, S390_FEAT_MSA_EXT_3 },
|
||||
+ { S390_FEAT_KMAC_HMAC_ESHA_256, S390_FEAT_MSA_EXT_3 },
|
||||
+ { S390_FEAT_KMAC_HMAC_ESHA_384, S390_FEAT_MSA_EXT_3 },
|
||||
+ { S390_FEAT_KMAC_HMAC_ESHA_512, S390_FEAT_MSA_EXT_3 },
|
||||
{ S390_FEAT_KM_FULL_XTS_AES_128, S390_FEAT_MSA_EXT_4 },
|
||||
{ S390_FEAT_KM_FULL_XTS_AES_256, S390_FEAT_MSA_EXT_4 },
|
||||
{ S390_FEAT_KM_FULL_XTS_EAES_128, S390_FEAT_MSA_EXT_4 },
|
||||
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
|
||||
index 06c3bf64f3..d6305f945a 100644
|
||||
--- a/target/s390x/gen-features.c
|
||||
+++ b/target/s390x/gen-features.c
|
||||
@@ -256,6 +256,20 @@
|
||||
S390_FEAT_PCKMO_AES_XTS_128_DK, \
|
||||
S390_FEAT_PCKMO_AES_XTS_256_DK
|
||||
|
||||
+#define S390_FEAT_GROUP_MSA_EXT_11 \
|
||||
+ S390_FEAT_KMAC_HMAC_SHA_224, \
|
||||
+ S390_FEAT_KMAC_HMAC_SHA_256, \
|
||||
+ S390_FEAT_KMAC_HMAC_SHA_384, \
|
||||
+ S390_FEAT_KMAC_HMAC_SHA_512, \
|
||||
+ S390_FEAT_KMAC_HMAC_ESHA_224, \
|
||||
+ S390_FEAT_KMAC_HMAC_ESHA_256, \
|
||||
+ S390_FEAT_KMAC_HMAC_ESHA_384, \
|
||||
+ S390_FEAT_KMAC_HMAC_ESHA_512
|
||||
+
|
||||
+#define S390_FEAT_GROUP_MSA_EXT_11_PCKMO \
|
||||
+ S390_FEAT_PCKMO_HMAC_512, \
|
||||
+ S390_FEAT_PCKMO_HMAC_1024
|
||||
+
|
||||
#define S390_FEAT_GROUP_ENH_SORT \
|
||||
S390_FEAT_ESORT_BASE, \
|
||||
S390_FEAT_SORTL_SFLR, \
|
||||
@@ -321,6 +335,10 @@ static uint16_t group_MSA_EXT_10[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_10,
|
||||
};
|
||||
|
||||
+static uint16_t group_MSA_EXT_11[] = {
|
||||
+ S390_FEAT_GROUP_MSA_EXT_11,
|
||||
+};
|
||||
+
|
||||
static uint16_t group_MSA_EXT_9_PCKMO[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_9_PCKMO,
|
||||
};
|
||||
@@ -329,6 +347,10 @@ static uint16_t group_MSA_EXT_10_PCKMO[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_10_PCKMO,
|
||||
};
|
||||
|
||||
+static uint16_t group_MSA_EXT_11_PCKMO[] = {
|
||||
+ S390_FEAT_GROUP_MSA_EXT_11_PCKMO,
|
||||
+};
|
||||
+
|
||||
static uint16_t group_ENH_SORT[] = {
|
||||
S390_FEAT_GROUP_ENH_SORT,
|
||||
};
|
||||
@@ -878,6 +900,8 @@ static FeatGroupDefSpec FeatGroupDef[] = {
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_9_PCKMO),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_10),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_10_PCKMO),
|
||||
+ FEAT_GROUP_INITIALIZER(MSA_EXT_11),
|
||||
+ FEAT_GROUP_INITIALIZER(MSA_EXT_11_PCKMO),
|
||||
FEAT_GROUP_INITIALIZER(MULTIPLE_EPOCH_PTFF),
|
||||
FEAT_GROUP_INITIALIZER(ENH_SORT),
|
||||
FEAT_GROUP_INITIALIZER(DEFLATE_CONVERSION),
|
||||
--
|
||||
2.39.3
|
||||
|
88
kvm-s390x-cpumodel-add-msa12-changes.patch
Normal file
88
kvm-s390x-cpumodel-add-msa12-changes.patch
Normal file
@ -0,0 +1,88 @@
|
||||
From 2016aa4ba5c5aecae350ce6ea81462c9ab5956c3 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:39 +0100
|
||||
Subject: [PATCH 04/18] s390x/cpumodel: add msa12 changes
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [4/16] c878296ee5c4f99f67f1c68172536b521be60e04 (thuth/qemu-kvm-cs9)
|
||||
|
||||
MSA12 changes the KIMD/KLMD instruction format for SHA3/SHAKE.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-4-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit 496fc02e0e532f8917fa96e45fa531231e821c31)
|
||||
---
|
||||
target/s390x/cpu_features.c | 1 +
|
||||
target/s390x/cpu_features_def.h.inc | 1 +
|
||||
target/s390x/gen-features.c | 8 ++++++++
|
||||
3 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
|
||||
index 36930feccd..0e0b37ab95 100644
|
||||
--- a/target/s390x/cpu_features.c
|
||||
+++ b/target/s390x/cpu_features.c
|
||||
@@ -256,6 +256,7 @@ static S390FeatGroupDef s390_feature_groups[] = {
|
||||
FEAT_GROUP_INIT("msa10_pckmo", MSA_EXT_10_PCKMO, "Message-security-assist-extension 10 PCKMO subfunctions"),
|
||||
FEAT_GROUP_INIT("msa11", MSA_EXT_11, "Message-security-assist-extension 11 facility"),
|
||||
FEAT_GROUP_INIT("msa11_pckmo", MSA_EXT_11_PCKMO, "Message-security-assist-extension 11 PCKMO subfunctions"),
|
||||
+ FEAT_GROUP_INIT("msa12", MSA_EXT_12, "Message-security-assist-extension 12 facility"),
|
||||
FEAT_GROUP_INIT("mepochptff", MULTIPLE_EPOCH_PTFF, "PTFF enhancements introduced with Multiple-epoch facility"),
|
||||
FEAT_GROUP_INIT("esort", ENH_SORT, "Enhanced-sort facility"),
|
||||
FEAT_GROUP_INIT("deflate", DEFLATE_CONVERSION, "Deflate-conversion facility"),
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index 15ea51fc54..2e5dc96984 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -90,6 +90,7 @@ DEF_FEAT(EDAT_2, "edat2", STFL, 78, "Enhanced-DAT facility 2")
|
||||
DEF_FEAT(DFP_PACKED_CONVERSION, "dfppc", STFL, 80, "Decimal-floating-point packed-conversion facility")
|
||||
DEF_FEAT(PPA15, "ppa15", STFL, 81, "PPA15 is installed")
|
||||
DEF_FEAT(BPB, "bpb", STFL, 82, "Branch prediction blocking")
|
||||
+DEF_FEAT(MSA_EXT_12, "msa12-base", STFL, 86, "Message-security-assist-extension-12 facility (excluding subfunctions)")
|
||||
DEF_FEAT(VECTOR, "vx", STFL, 129, "Vector facility")
|
||||
DEF_FEAT(INSTRUCTION_EXEC_PROT, "iep", STFL, 130, "Instruction-execution-protection facility")
|
||||
DEF_FEAT(SIDE_EFFECT_ACCESS_ESOP2, "sea_esop2", STFL, 131, "Side-effect-access facility and Enhanced-suppression-on-protection facility 2")
|
||||
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
|
||||
index d6305f945a..ab9ad51d5e 100644
|
||||
--- a/target/s390x/gen-features.c
|
||||
+++ b/target/s390x/gen-features.c
|
||||
@@ -270,6 +270,9 @@
|
||||
S390_FEAT_PCKMO_HMAC_512, \
|
||||
S390_FEAT_PCKMO_HMAC_1024
|
||||
|
||||
+#define S390_FEAT_GROUP_MSA_EXT_12 \
|
||||
+ S390_FEAT_MSA_EXT_12
|
||||
+
|
||||
#define S390_FEAT_GROUP_ENH_SORT \
|
||||
S390_FEAT_ESORT_BASE, \
|
||||
S390_FEAT_SORTL_SFLR, \
|
||||
@@ -339,6 +342,10 @@ static uint16_t group_MSA_EXT_11[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_11,
|
||||
};
|
||||
|
||||
+static uint16_t group_MSA_EXT_12[] = {
|
||||
+ S390_FEAT_GROUP_MSA_EXT_12,
|
||||
+};
|
||||
+
|
||||
static uint16_t group_MSA_EXT_9_PCKMO[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_9_PCKMO,
|
||||
};
|
||||
@@ -902,6 +909,7 @@ static FeatGroupDefSpec FeatGroupDef[] = {
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_10_PCKMO),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_11),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_11_PCKMO),
|
||||
+ FEAT_GROUP_INITIALIZER(MSA_EXT_12),
|
||||
FEAT_GROUP_INITIALIZER(MULTIPLE_EPOCH_PTFF),
|
||||
FEAT_GROUP_INITIALIZER(ENH_SORT),
|
||||
FEAT_GROUP_INITIALIZER(DEFLATE_CONVERSION),
|
||||
--
|
||||
2.39.3
|
||||
|
200
kvm-s390x-cpumodel-add-msa13-subfunctions.patch
Normal file
200
kvm-s390x-cpumodel-add-msa13-subfunctions.patch
Normal file
@ -0,0 +1,200 @@
|
||||
From 003efbebc77300d3004f4613255e04058165ff33 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:40 +0100
|
||||
Subject: [PATCH 05/18] s390x/cpumodel: add msa13 subfunctions
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [5/16] b3f42a4a831bc0582e3c14da6387d7db440c3c41 (thuth/qemu-kvm-cs9)
|
||||
|
||||
MSA13 introduces query authentication information (QAI) subfunctions.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-5-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit ba4614fdacc2ea55060ddb48bdb2ebd21d0c3464)
|
||||
---
|
||||
target/s390x/cpu_features.c | 2 ++
|
||||
target/s390x/cpu_features_def.h.inc | 12 ++++++++++++
|
||||
target/s390x/gen-features.c | 26 ++++++++++++++++++++++++++
|
||||
3 files changed, 40 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_features.c b/target/s390x/cpu_features.c
|
||||
index 0e0b37ab95..9ba127e386 100644
|
||||
--- a/target/s390x/cpu_features.c
|
||||
+++ b/target/s390x/cpu_features.c
|
||||
@@ -257,6 +257,8 @@ static S390FeatGroupDef s390_feature_groups[] = {
|
||||
FEAT_GROUP_INIT("msa11", MSA_EXT_11, "Message-security-assist-extension 11 facility"),
|
||||
FEAT_GROUP_INIT("msa11_pckmo", MSA_EXT_11_PCKMO, "Message-security-assist-extension 11 PCKMO subfunctions"),
|
||||
FEAT_GROUP_INIT("msa12", MSA_EXT_12, "Message-security-assist-extension 12 facility"),
|
||||
+ FEAT_GROUP_INIT("msa13", MSA_EXT_13, "Message-security-assist-extension 13 facility"),
|
||||
+ FEAT_GROUP_INIT("msa13_pckmo", MSA_EXT_13_PCKMO, "Message-security-assist-extension 13 PCKMO subfunctions"),
|
||||
FEAT_GROUP_INIT("mepochptff", MULTIPLE_EPOCH_PTFF, "PTFF enhancements introduced with Multiple-epoch facility"),
|
||||
FEAT_GROUP_INIT("esort", ENH_SORT, "Enhanced-sort facility"),
|
||||
FEAT_GROUP_INIT("deflate", DEFLATE_CONVERSION, "Deflate-conversion facility"),
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index 2e5dc96984..2132837ffe 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -209,6 +209,7 @@ DEF_FEAT(KMAC_HMAC_ESHA_224, "kmac-hmac-esha-224", KMAC, 120, "KMAC HMAC-Encrypt
|
||||
DEF_FEAT(KMAC_HMAC_ESHA_256, "kmac-hmac-esha-246", KMAC, 121, "KMAC HMAC-Encrypted-SHA-256")
|
||||
DEF_FEAT(KMAC_HMAC_ESHA_384, "kmac-hmac-esha-384", KMAC, 122, "KMAC HMAC-Encrypted-SHA-384")
|
||||
DEF_FEAT(KMAC_HMAC_ESHA_512, "kmac-hmac-esha-512", KMAC, 123, "KMAC HMAC-Encrypted-SHA-512")
|
||||
+DEF_FEAT(KMAC_QAI, "kmac-qai", KMAC, 127, "KMAC Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the KMC instruction. */
|
||||
DEF_FEAT(KMC_DEA, "kmc-dea", KMC, 1, "KMC DEA")
|
||||
@@ -246,6 +247,7 @@ DEF_FEAT(KM_FULL_XTS_AES_128, "km-full-xts-aes-128", KM, 82, "KM Full-XTS-AES-12
|
||||
DEF_FEAT(KM_FULL_XTS_AES_256, "km-full-xts-aes-256", KM, 84, "KM Full-XTS-AES-256")
|
||||
DEF_FEAT(KM_FULL_XTS_EAES_128, "km-full-xts-eaes-128", KM, 90, "KM Full-XTS-Encrypted-AES-128")
|
||||
DEF_FEAT(KM_FULL_XTS_EAES_256, "km-full-xts-eaes-256", KM, 92, "KM Full-XTS-Encrypted-AES-256")
|
||||
+DEF_FEAT(KM_QAI, "km-qai", KM, 127, "KM Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the KIMD instruction. */
|
||||
DEF_FEAT(KIMD_SHA_1, "kimd-sha-1", KIMD, 1, "KIMD SHA-1")
|
||||
@@ -258,6 +260,7 @@ DEF_FEAT(KIMD_SHA3_512, "kimd-sha3-512", KIMD, 35, "KIMD SHA3-512")
|
||||
DEF_FEAT(KIMD_SHAKE_128, "kimd-shake-128", KIMD, 36, "KIMD SHAKE-128")
|
||||
DEF_FEAT(KIMD_SHAKE_256, "kimd-shake-256", KIMD, 37, "KIMD SHAKE-256")
|
||||
DEF_FEAT(KIMD_GHASH, "kimd-ghash", KIMD, 65, "KIMD GHASH")
|
||||
+DEF_FEAT(KIMD_QAI, "kimd-qai", KIMD, 127, "KIMD Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the KLMD instruction. */
|
||||
DEF_FEAT(KLMD_SHA_1, "klmd-sha-1", KLMD, 1, "KLMD SHA-1")
|
||||
@@ -269,6 +272,7 @@ DEF_FEAT(KLMD_SHA3_384, "klmd-sha3-384", KLMD, 34, "KLMD SHA3-384")
|
||||
DEF_FEAT(KLMD_SHA3_512, "klmd-sha3-512", KLMD, 35, "KLMD SHA3-512")
|
||||
DEF_FEAT(KLMD_SHAKE_128, "klmd-shake-128", KLMD, 36, "KLMD SHAKE-128")
|
||||
DEF_FEAT(KLMD_SHAKE_256, "klmd-shake-256", KLMD, 37, "KLMD SHAKE-256")
|
||||
+DEF_FEAT(KLMD_QAI, "klmd-qai", KLMD, 127, "KLMD Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the PCKMO instruction. */
|
||||
DEF_FEAT(PCKMO_EDEA, "pckmo-edea", PCKMO, 1, "PCKMO Encrypted-DEA-Key")
|
||||
@@ -286,6 +290,7 @@ DEF_FEAT(PCKMO_ECC_ED25519, "pckmo-ecc-ed25519", PCKMO, 40 , "PCKMO Encrypt-ECC-
|
||||
DEF_FEAT(PCKMO_ECC_ED448, "pckmo-ecc-ed448", PCKMO, 41 , "PCKMO Encrypt-ECC-Ed448-Key")
|
||||
DEF_FEAT(PCKMO_HMAC_512, "pckmo-hmac-512", PCKMO, 118, "PCKMO Encrypt-HMAC-512-Key")
|
||||
DEF_FEAT(PCKMO_HMAC_1024, "pckmo-hmac-1024", PCKMO, 122, "PCKMO Encrypt-HMAC-1024-Key")
|
||||
+DEF_FEAT(PCKMO_QAI, "pckmo-qai", PCKMO, 127, "PCKMO Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the KMCTR instruction. */
|
||||
DEF_FEAT(KMCTR_DEA, "kmctr-dea", KMCTR, 1, "KMCTR DEA")
|
||||
@@ -300,6 +305,7 @@ DEF_FEAT(KMCTR_AES_256, "kmctr-aes-256", KMCTR, 20, "KMCTR AES-256")
|
||||
DEF_FEAT(KMCTR_EAES_128, "kmctr-eaes-128", KMCTR, 26, "KMCTR Encrypted-AES-128")
|
||||
DEF_FEAT(KMCTR_EAES_192, "kmctr-eaes-192", KMCTR, 27, "KMCTR Encrypted-AES-192")
|
||||
DEF_FEAT(KMCTR_EAES_256, "kmctr-eaes-256", KMCTR, 28, "KMCTR Encrypted-AES-256")
|
||||
+DEF_FEAT(KMCTR_QAI, "kmctr-qai", KMCTR, 127, "KMCTR Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the KMF instruction. */
|
||||
DEF_FEAT(KMF_DEA, "kmf-dea", KMF, 1, "KMF DEA")
|
||||
@@ -314,6 +320,7 @@ DEF_FEAT(KMF_AES_256, "kmf-aes-256", KMF, 20, "KMF AES-256")
|
||||
DEF_FEAT(KMF_EAES_128, "kmf-eaes-128", KMF, 26, "KMF Encrypted-AES-128")
|
||||
DEF_FEAT(KMF_EAES_192, "kmf-eaes-192", KMF, 27, "KMF Encrypted-AES-192")
|
||||
DEF_FEAT(KMF_EAES_256, "kmf-eaes-256", KMF, 28, "KMF Encrypted-AES-256")
|
||||
+DEF_FEAT(KMF_QAI, "kmf-qai", KMF, 127, "KMF Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the KMO instruction. */
|
||||
DEF_FEAT(KMO_DEA, "kmo-dea", KMO, 1, "KMO DEA")
|
||||
@@ -328,6 +335,7 @@ DEF_FEAT(KMO_AES_256, "kmo-aes-256", KMO, 20, "KMO AES-256")
|
||||
DEF_FEAT(KMO_EAES_128, "kmo-eaes-128", KMO, 26, "KMO Encrypted-AES-128")
|
||||
DEF_FEAT(KMO_EAES_192, "kmo-eaes-192", KMO, 27, "KMO Encrypted-AES-192")
|
||||
DEF_FEAT(KMO_EAES_256, "kmo-eaes-256", KMO, 28, "KMO Encrypted-AES-256")
|
||||
+DEF_FEAT(KMO_QAI, "kmo-qai", KMO, 127, "KMO Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the PCC instruction. */
|
||||
DEF_FEAT(PCC_CMAC_DEA, "pcc-cmac-dea", PCC, 1, "PCC Compute-Last-Block-CMAC-Using-DEA")
|
||||
@@ -353,11 +361,13 @@ DEF_FEAT(PCC_SCALAR_MULT_ED25519, "pcc-scalar-mult-ed25519", PCC, 72, "PCC Scala
|
||||
DEF_FEAT(PCC_SCALAR_MULT_ED448, "pcc-scalar-mult-ed448", PCC, 73, "PCC Scalar-Multiply-Ed448")
|
||||
DEF_FEAT(PCC_SCALAR_MULT_X25519, "pcc-scalar-mult-x25519", PCC, 80, "PCC Scalar-Multiply-X25519")
|
||||
DEF_FEAT(PCC_SCALAR_MULT_X448, "pcc-scalar-mult-x448", PCC, 81, "PCC Scalar-Multiply-X448")
|
||||
+DEF_FEAT(PCC_QAI, "pcc-qai", PCC, 127, "PCC Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the PPNO/PRNO instruction. */
|
||||
DEF_FEAT(PPNO_SHA_512_DRNG, "ppno-sha-512-drng", PPNO, 3, "PPNO SHA-512-DRNG")
|
||||
DEF_FEAT(PRNO_TRNG_QRTCR, "prno-trng-qrtcr", PPNO, 112, "PRNO TRNG-Query-Raw-to-Conditioned-Ratio")
|
||||
DEF_FEAT(PRNO_TRNG, "prno-trng", PPNO, 114, "PRNO TRNG")
|
||||
+DEF_FEAT(PRNO_QAI, "prno-qai", PPNO, 127, "PRNO Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the KMA instruction. */
|
||||
DEF_FEAT(KMA_GCM_AES_128, "kma-gcm-aes-128", KMA, 18, "KMA GCM-AES-128")
|
||||
@@ -366,6 +376,7 @@ DEF_FEAT(KMA_GCM_AES_256, "kma-gcm-aes-256", KMA, 20, "KMA GCM-AES-256")
|
||||
DEF_FEAT(KMA_GCM_EAES_128, "kma-gcm-eaes-128", KMA, 26, "KMA GCM-Encrypted-AES-128")
|
||||
DEF_FEAT(KMA_GCM_EAES_192, "kma-gcm-eaes-192", KMA, 27, "KMA GCM-Encrypted-AES-192")
|
||||
DEF_FEAT(KMA_GCM_EAES_256, "kma-gcm-eaes-256", KMA, 28, "KMA GCM-Encrypted-AES-256")
|
||||
+DEF_FEAT(KMA_QAI, "kma-qai", KMA, 127, "KMA Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the KDSA instruction. */
|
||||
DEF_FEAT(KDSA_ECDSA_VERIFY_P256, "kdsa-ecdsa-verify-p256", KDSA, 1, "KDSA ECDSA-Verify-P256")
|
||||
@@ -383,6 +394,7 @@ DEF_FEAT(KDSA_EDDSA_SIGN_ED25519, "kdsa-eddsa-sign-ed25519", KDSA, 40, "KDSA EdD
|
||||
DEF_FEAT(KDSA_EDDSA_SIGN_ED448, "kdsa-eddsa-sign-ed448", KDSA, 44, "KDSA EdDSA-Sign-Ed448")
|
||||
DEF_FEAT(KDSA_EEDDSA_SIGN_ED25519, "kdsa-eeddsa-sign-ed25519", KDSA, 48, "KDSA Encrypted-EdDSA-Sign-Ed25519")
|
||||
DEF_FEAT(KDSA_EEDDSA_SIGN_ED448, "kdsa-eeddsa-sign-ed448", KDSA, 52, "KDSA Encrypted-EdDSA-Sign-Ed448")
|
||||
+DEF_FEAT(KDSA_QAI, "kdsa-qai", KDSA, 127, "KDSA Query-Authentication-Information")
|
||||
|
||||
/* Features exposed via the SORTL instruction. */
|
||||
DEF_FEAT(SORTL_SFLR, "sortl-sflr", SORTL, 1, "SORTL SFLR")
|
||||
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
|
||||
index ab9ad51d5e..3326e7df43 100644
|
||||
--- a/target/s390x/gen-features.c
|
||||
+++ b/target/s390x/gen-features.c
|
||||
@@ -273,6 +273,22 @@
|
||||
#define S390_FEAT_GROUP_MSA_EXT_12 \
|
||||
S390_FEAT_MSA_EXT_12
|
||||
|
||||
+#define S390_FEAT_GROUP_MSA_EXT_13 \
|
||||
+ S390_FEAT_KDSA_QAI, \
|
||||
+ S390_FEAT_KIMD_QAI, \
|
||||
+ S390_FEAT_KLMD_QAI, \
|
||||
+ S390_FEAT_KMAC_QAI, \
|
||||
+ S390_FEAT_KMA_QAI, \
|
||||
+ S390_FEAT_KMCTR_QAI, \
|
||||
+ S390_FEAT_KMF_QAI, \
|
||||
+ S390_FEAT_KMO_QAI, \
|
||||
+ S390_FEAT_KM_QAI, \
|
||||
+ S390_FEAT_PCC_QAI, \
|
||||
+ S390_FEAT_PRNO_QAI
|
||||
+
|
||||
+#define S390_FEAT_GROUP_MSA_EXT_13_PCKMO \
|
||||
+ S390_FEAT_PCKMO_QAI
|
||||
+
|
||||
#define S390_FEAT_GROUP_ENH_SORT \
|
||||
S390_FEAT_ESORT_BASE, \
|
||||
S390_FEAT_SORTL_SFLR, \
|
||||
@@ -346,6 +362,10 @@ static uint16_t group_MSA_EXT_12[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_12,
|
||||
};
|
||||
|
||||
+static uint16_t group_MSA_EXT_13[] = {
|
||||
+ S390_FEAT_GROUP_MSA_EXT_13,
|
||||
+};
|
||||
+
|
||||
static uint16_t group_MSA_EXT_9_PCKMO[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_9_PCKMO,
|
||||
};
|
||||
@@ -358,6 +378,10 @@ static uint16_t group_MSA_EXT_11_PCKMO[] = {
|
||||
S390_FEAT_GROUP_MSA_EXT_11_PCKMO,
|
||||
};
|
||||
|
||||
+static uint16_t group_MSA_EXT_13_PCKMO[] = {
|
||||
+ S390_FEAT_GROUP_MSA_EXT_13_PCKMO,
|
||||
+};
|
||||
+
|
||||
static uint16_t group_ENH_SORT[] = {
|
||||
S390_FEAT_GROUP_ENH_SORT,
|
||||
};
|
||||
@@ -910,6 +934,8 @@ static FeatGroupDefSpec FeatGroupDef[] = {
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_11),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_11_PCKMO),
|
||||
FEAT_GROUP_INITIALIZER(MSA_EXT_12),
|
||||
+ FEAT_GROUP_INITIALIZER(MSA_EXT_13),
|
||||
+ FEAT_GROUP_INITIALIZER(MSA_EXT_13_PCKMO),
|
||||
FEAT_GROUP_INITIALIZER(MULTIPLE_EPOCH_PTFF),
|
||||
FEAT_GROUP_INITIALIZER(ENH_SORT),
|
||||
FEAT_GROUP_INITIALIZER(DEFLATE_CONVERSION),
|
||||
--
|
||||
2.39.3
|
||||
|
69
kvm-s390x-cpumodel-correct-PLO-feature-wording.patch
Normal file
69
kvm-s390x-cpumodel-correct-PLO-feature-wording.patch
Normal file
@ -0,0 +1,69 @@
|
||||
From bec777b1ca5107cea4f4104c58cdd0c5d9613e33 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:49 +0100
|
||||
Subject: [PATCH 14/18] s390x/cpumodel: correct PLO feature wording
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [14/16] 346fd03bd68222125b0b04113a432ae739af84f1 (thuth/qemu-kvm-cs9)
|
||||
|
||||
The PLO functions 0, 4, 8, 12, 16, and 20 use 32-bit registers
|
||||
values. The plo-*gr variants use 64-bit instead and, thus, correct
|
||||
the wording.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-14-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit 5a0a136df71b858d01f346af4a30ae1da23e8b3c)
|
||||
---
|
||||
target/s390x/cpu_features_def.h.inc | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc
|
||||
index 09a80844a7..fe7e1bd19c 100644
|
||||
--- a/target/s390x/cpu_features_def.h.inc
|
||||
+++ b/target/s390x/cpu_features_def.h.inc
|
||||
@@ -158,27 +158,27 @@ DEF_FEAT(AP, "ap", MISC, 0, "AP instructions installed")
|
||||
/* Features exposed via the PLO instruction. */
|
||||
DEF_FEAT(PLO_CL, "plo-cl", PLO, 0, "PLO Compare and load (32 bit in general registers)")
|
||||
DEF_FEAT(PLO_CLG, "plo-clg", PLO, 1, "PLO Compare and load (64 bit in parameter list)")
|
||||
-DEF_FEAT(PLO_CLGR, "plo-clgr", PLO, 2, "PLO Compare and load (32 bit in general registers)")
|
||||
+DEF_FEAT(PLO_CLGR, "plo-clgr", PLO, 2, "PLO Compare and load (64 bit in general registers)")
|
||||
DEF_FEAT(PLO_CLX, "plo-clx", PLO, 3, "PLO Compare and load (128 bit in parameter list)")
|
||||
DEF_FEAT(PLO_CS, "plo-cs", PLO, 4, "PLO Compare and swap (32 bit in general registers)")
|
||||
DEF_FEAT(PLO_CSG, "plo-csg", PLO, 5, "PLO Compare and swap (64 bit in parameter list)")
|
||||
-DEF_FEAT(PLO_CSGR, "plo-csgr", PLO, 6, "PLO Compare and swap (32 bit in general registers)")
|
||||
+DEF_FEAT(PLO_CSGR, "plo-csgr", PLO, 6, "PLO Compare and swap (64 bit in general registers)")
|
||||
DEF_FEAT(PLO_CSX, "plo-csx", PLO, 7, "PLO Compare and swap (128 bit in parameter list)")
|
||||
DEF_FEAT(PLO_DCS, "plo-dcs", PLO, 8, "PLO Double compare and swap (32 bit in general registers)")
|
||||
DEF_FEAT(PLO_DCSG, "plo-dcsg", PLO, 9, "PLO Double compare and swap (64 bit in parameter list)")
|
||||
-DEF_FEAT(PLO_DCSGR, "plo-dcsgr", PLO, 10, "PLO Double compare and swap (32 bit in general registers)")
|
||||
+DEF_FEAT(PLO_DCSGR, "plo-dcsgr", PLO, 10, "PLO Double compare and swap (64 bit in general registers)")
|
||||
DEF_FEAT(PLO_DCSX, "plo-dcsx", PLO, 11, "PLO Double compare and swap (128 bit in parameter list)")
|
||||
DEF_FEAT(PLO_CSST, "plo-csst", PLO, 12, "PLO Compare and swap and store (32 bit in general registers)")
|
||||
DEF_FEAT(PLO_CSSTG, "plo-csstg", PLO, 13, "PLO Compare and swap and store (64 bit in parameter list)")
|
||||
-DEF_FEAT(PLO_CSSTGR, "plo-csstgr", PLO, 14, "PLO Compare and swap and store (32 bit in general registers)")
|
||||
+DEF_FEAT(PLO_CSSTGR, "plo-csstgr", PLO, 14, "PLO Compare and swap and store (64 bit in general registers)")
|
||||
DEF_FEAT(PLO_CSSTX, "plo-csstx", PLO, 15, "PLO Compare and swap and store (128 bit in parameter list)")
|
||||
DEF_FEAT(PLO_CSDST, "plo-csdst", PLO, 16, "PLO Compare and swap and double store (32 bit in general registers)")
|
||||
DEF_FEAT(PLO_CSDSTG, "plo-csdstg", PLO, 17, "PLO Compare and swap and double store (64 bit in parameter list)")
|
||||
-DEF_FEAT(PLO_CSDSTGR, "plo-csdstgr", PLO, 18, "PLO Compare and swap and double store (32 bit in general registers)")
|
||||
+DEF_FEAT(PLO_CSDSTGR, "plo-csdstgr", PLO, 18, "PLO Compare and swap and double store (64 bit in general registers)")
|
||||
DEF_FEAT(PLO_CSDSTX, "plo-csdstx", PLO, 19, "PLO Compare and swap and double store (128 bit in parameter list)")
|
||||
DEF_FEAT(PLO_CSTST, "plo-cstst", PLO, 20, "PLO Compare and swap and triple store (32 bit in general registers)")
|
||||
DEF_FEAT(PLO_CSTSTG, "plo-cststg", PLO, 21, "PLO Compare and swap and triple store (64 bit in parameter list)")
|
||||
-DEF_FEAT(PLO_CSTSTGR, "plo-cststgr", PLO, 22, "PLO Compare and swap and triple store (32 bit in general registers)")
|
||||
+DEF_FEAT(PLO_CSTSTGR, "plo-cststgr", PLO, 22, "PLO Compare and swap and triple store (64 bit in general registers)")
|
||||
DEF_FEAT(PLO_CSTSTX, "plo-cststx", PLO, 23, "PLO Compare and swap and triple store (128 bit in parameter list)")
|
||||
|
||||
/* Features exposed via the PTFF instruction. */
|
||||
--
|
||||
2.39.3
|
||||
|
107
kvm-s390x-cpumodel-gen17-model.patch
Normal file
107
kvm-s390x-cpumodel-gen17-model.patch
Normal file
@ -0,0 +1,107 @@
|
||||
From bf9dd3db72e0e8cde010f649fbe484fdd929ac96 Mon Sep 17 00:00:00 2001
|
||||
From: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Date: Fri, 6 Dec 2024 13:27:51 +0100
|
||||
Subject: [PATCH 16/18] s390x/cpumodel: gen17 model
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Thomas Huth <thuth@redhat.com>
|
||||
RH-MergeRequest: 305: CPU model for new IBM Z gen17 hardware
|
||||
RH-Jira: RHEL-32665
|
||||
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
|
||||
RH-Commit: [16/16] 97b19706656f5510d1aab760f01e501c1c332bc4 (thuth/qemu-kvm-cs9)
|
||||
|
||||
This commit introduces the definition of the gen17a/gen17b CPU model.
|
||||
|
||||
Signed-off-by: Hendrik Brueckner <brueckner@linux.ibm.com>
|
||||
Message-ID: <20241206122751.189721-16-brueckner@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
(cherry picked from commit 21b8db229901a51f16aebe342c0508f588ea5006)
|
||||
---
|
||||
target/s390x/cpu_models.c | 2 ++
|
||||
target/s390x/gen-features.c | 33 +++++++++++++++++++++++++++++++++
|
||||
2 files changed, 35 insertions(+)
|
||||
|
||||
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
|
||||
index 3fb5b0980e..c326a71237 100644
|
||||
--- a/target/s390x/cpu_models.c
|
||||
+++ b/target/s390x/cpu_models.c
|
||||
@@ -97,6 +97,8 @@ static S390CPUDef s390_cpu_defs[] = {
|
||||
CPUDEF_INIT(0x8562, 15, 1, 47, 0x08000000U, "gen15b", "IBM z15 T02 GA1"),
|
||||
CPUDEF_INIT(0x3931, 16, 1, 47, 0x08000000U, "gen16a", "IBM 3931 GA1"),
|
||||
CPUDEF_INIT(0x3932, 16, 1, 47, 0x08000000U, "gen16b", "IBM 3932 GA1"),
|
||||
+ CPUDEF_INIT(0x9175, 17, 1, 47, 0x08000000U, "gen17a", "IBM 9175 GA1"),
|
||||
+ CPUDEF_INIT(0x9176, 17, 1, 47, 0x08000000U, "gen17b", "IBM 9176 GA1"),
|
||||
};
|
||||
|
||||
#define QEMU_MAX_CPU_TYPE 0x8561
|
||||
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
|
||||
index 680d45d303..41840677ce 100644
|
||||
--- a/target/s390x/gen-features.c
|
||||
+++ b/target/s390x/gen-features.c
|
||||
@@ -561,6 +561,13 @@ static uint16_t base_GEN15_GA1[] = {
|
||||
|
||||
#define base_GEN16_GA1 EmptyFeat
|
||||
|
||||
+static uint16_t base_GEN17_GA1[] = {
|
||||
+ S390_FEAT_MISC_INSTRUCTION_EXT4,
|
||||
+ S390_FEAT_SIF,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_12,
|
||||
+ S390_FEAT_GROUP_PLO_EXT,
|
||||
+};
|
||||
+
|
||||
/* Full features (in order of release)
|
||||
* Automatically includes corresponding base features.
|
||||
* Full features are all features this hardware supports even if kvm/QEMU do not
|
||||
@@ -715,6 +722,20 @@ static uint16_t full_GEN16_GA1[] = {
|
||||
S390_FEAT_UV_FEAT_AP_INTR,
|
||||
};
|
||||
|
||||
+static uint16_t full_GEN17_GA1[] = {
|
||||
+ S390_FEAT_VECTOR_ENH3,
|
||||
+ S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3,
|
||||
+ S390_FEAT_INEFF_NC_TX,
|
||||
+ S390_FEAT_GROUP_GEN17_PTFF,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_10,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_10_PCKMO,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_11,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_11_PCKMO,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_13,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_13_PCKMO,
|
||||
+ S390_FEAT_GROUP_CONCURRENT_FUNCTIONS,
|
||||
+};
|
||||
+
|
||||
|
||||
/* Default features (in order of release)
|
||||
* Automatically includes corresponding base features.
|
||||
@@ -810,6 +831,17 @@ static uint16_t default_GEN16_GA1[] = {
|
||||
S390_FEAT_PAIE,
|
||||
};
|
||||
|
||||
+static uint16_t default_GEN17_GA1[] = {
|
||||
+ S390_FEAT_VECTOR_ENH3,
|
||||
+ S390_FEAT_VECTOR_PACKED_DECIMAL_ENH3,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_10,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_10_PCKMO,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_11,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_11_PCKMO,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_13,
|
||||
+ S390_FEAT_GROUP_MSA_EXT_13_PCKMO,
|
||||
+};
|
||||
+
|
||||
/* QEMU (CPU model) features */
|
||||
|
||||
static uint16_t qemu_V2_11[] = {
|
||||
@@ -958,6 +990,7 @@ static CpuFeatDefSpec CpuFeatDef[] = {
|
||||
CPU_FEAT_INITIALIZER(GEN14_GA2),
|
||||
CPU_FEAT_INITIALIZER(GEN15_GA1),
|
||||
CPU_FEAT_INITIALIZER(GEN16_GA1),
|
||||
+ CPU_FEAT_INITIALIZER(GEN17_GA1),
|
||||
};
|
||||
|
||||
#define FEAT_GROUP_INITIALIZER(_name) \
|
||||
--
|
||||
2.39.3
|
||||
|
@ -143,7 +143,7 @@ Obsoletes: %{name}-block-ssh <= %{epoch}:%{version} \
|
||||
Summary: QEMU is a machine emulator and virtualizer
|
||||
Name: qemu-kvm
|
||||
Version: 9.1.0
|
||||
Release: 8%{?rcrel}%{?dist}%{?cc_suffix}
|
||||
Release: 9%{?rcrel}%{?dist}%{?cc_suffix}
|
||||
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
||||
# Epoch 15 used for RHEL 8
|
||||
# Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5)
|
||||
@ -360,6 +360,42 @@ Patch91: kvm-pc-bios-s390x-Initialize-machine-loadparm-before-pro.patch
|
||||
Patch92: kvm-pc-bios-s390-ccw-Re-initialize-receive-queue-index-b.patch
|
||||
# For RHEL-69047 - warning: fd: migration to a file is deprecated when create or revert a snapshot
|
||||
Patch93: kvm-migration-Allow-pipes-to-keep-working-for-fd-migrati.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch94: kvm-linux-headers-Update-to-Linux-v6.12-rc5.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch95: kvm-s390x-cpumodel-add-msa10-subfunctions.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch96: kvm-s390x-cpumodel-add-msa11-subfunctions.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch97: kvm-s390x-cpumodel-add-msa12-changes.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch98: kvm-s390x-cpumodel-add-msa13-subfunctions.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch99: kvm-s390x-cpumodel-Add-ptff-Query-Time-Stamp-Event-QTSE-.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch100: kvm-linux-headers-Update-to-Linux-6.13-rc1.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch101: kvm-s390x-cpumodel-add-Concurrent-functions-facility-sup.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch102: kvm-s390x-cpumodel-add-Vector-Enhancements-facility-3.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch103: kvm-s390x-cpumodel-add-Miscellaneous-Instruction-Extensi.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch104: kvm-s390x-cpumodel-add-Vector-Packed-Decimal-Enhancement.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch105: kvm-s390x-cpumodel-add-Ineffective-nonconstrained-transa.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch106: kvm-s390x-cpumodel-Add-Sequential-Instruction-Fetching-f.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch107: kvm-s390x-cpumodel-correct-PLO-feature-wording.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch108: kvm-s390x-cpumodel-Add-PLO-extension-facility.patch
|
||||
# For RHEL-32665 - [IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part
|
||||
Patch109: kvm-s390x-cpumodel-gen17-model.patch
|
||||
# For RHEL-71939 - qemu-ga cannot freeze filesystems with sentinelone
|
||||
Patch110: kvm-qga-skip-bind-mounts-in-fs-list.patch
|
||||
# For RHEL-67108 - [aarch64] [rhel-10.0] Backport some important post 9.1 qemu fixes
|
||||
Patch111: kvm-hw-char-pl011-Use-correct-masks-for-IBRD-and-FBRD.patch
|
||||
|
||||
%if %{have_clang}
|
||||
BuildRequires: clang
|
||||
@ -1426,6 +1462,32 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Jan 06 2025 Miroslav Rezanina <mrezanin@redhat.com> - 9.1.0-9
|
||||
- kvm-linux-headers-Update-to-Linux-v6.12-rc5.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-add-msa10-subfunctions.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-add-msa11-subfunctions.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-add-msa12-changes.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-add-msa13-subfunctions.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-Add-ptff-Query-Time-Stamp-Event-QTSE-.patch [RHEL-32665]
|
||||
- kvm-linux-headers-Update-to-Linux-6.13-rc1.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-add-Concurrent-functions-facility-sup.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-add-Vector-Enhancements-facility-3.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-add-Miscellaneous-Instruction-Extensi.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-add-Vector-Packed-Decimal-Enhancement.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-add-Ineffective-nonconstrained-transa.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-Add-Sequential-Instruction-Fetching-f.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-correct-PLO-feature-wording.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-Add-PLO-extension-facility.patch [RHEL-32665]
|
||||
- kvm-s390x-cpumodel-gen17-model.patch [RHEL-32665]
|
||||
- kvm-qga-skip-bind-mounts-in-fs-list.patch [RHEL-71939]
|
||||
- kvm-hw-char-pl011-Use-correct-masks-for-IBRD-and-FBRD.patch [RHEL-67108]
|
||||
- Resolves: RHEL-32665
|
||||
([IBM 10.0 FEAT] KVM: CPU model for new IBM Z HW - qemu-kvm part)
|
||||
- Resolves: RHEL-71939
|
||||
(qemu-ga cannot freeze filesystems with sentinelone)
|
||||
- Resolves: RHEL-67108
|
||||
([aarch64] [rhel-10.0] Backport some important post 9.1 qemu fixes)
|
||||
|
||||
* Fri Dec 13 2024 Miroslav Rezanina <mrezanin@redhat.com> - 9.1.0-8
|
||||
- kvm-migration-Allow-pipes-to-keep-working-for-fd-migrati.patch [RHEL-69047]
|
||||
- Resolves: RHEL-69047
|
||||
|
Loading…
Reference in New Issue
Block a user