Message ID | 20241206122751.189721-4-brueckner@linux.ibm.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | KVM: s390: CPU model for gen17 | expand |
On 12/6/24 1:27 PM, Hendrik Brueckner wrote: > 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> MSA6 is a prereq, no?
On Mon, Dec 09, 2024 at 03:48:11PM +0100, Janosch Frank wrote: > On 12/6/24 1:27 PM, Hendrik Brueckner wrote: > > 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> > > MSA6 is a prereq, no? MSA6 is the prereq. However, there is no explicit feature definition for the MSA_EXT_6 due to no STFLE and subfunctions only. The only way would be to pick one or more / all MSA6 subfunctions for which there is a feature defined...
On 12/9/24 4:24 PM, Hendrik Brueckner wrote: > On Mon, Dec 09, 2024 at 03:48:11PM +0100, Janosch Frank wrote: >> On 12/6/24 1:27 PM, Hendrik Brueckner wrote: >>> 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> >> >> MSA6 is a prereq, no? > > MSA6 is the prereq. However, there is no explicit feature definition > for the MSA_EXT_6 due to no STFLE and subfunctions only. The only > way would be to pick one or more / all MSA6 subfunctions for which > there is a feature defined... Which you did for MSA11, no? I'm not saying that subfunc handling is great :)
On Mon, Dec 09, 2024 at 04:45:25PM +0100, Janosch Frank wrote: > On 12/9/24 4:24 PM, Hendrik Brueckner wrote: > > On Mon, Dec 09, 2024 at 03:48:11PM +0100, Janosch Frank wrote: > > > On 12/6/24 1:27 PM, Hendrik Brueckner wrote: > > > > 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> > > > > > > MSA6 is a prereq, no? > > > > MSA6 is the prereq. However, there is no explicit feature definition > > for the MSA_EXT_6 due to no STFLE and subfunctions only. The only > > way would be to pick one or more / all MSA6 subfunctions for which > > there is a feature defined... > > Which you did for MSA11, no? The other way around. Here: MSA_EXT_12 would check/have a dependency on all(?) subfuncs introduced with MSA_EXT_6. > > I'm not saying that subfunc handling is great :) Let me have a look which functions come with MSA_6 related to KIMD/KLMD. Would it be OK to have those checks as a separate patch so that cpu model in general is not blocked?
On 12/9/24 4:54 PM, Hendrik Brueckner wrote: > On Mon, Dec 09, 2024 at 04:45:25PM +0100, Janosch Frank wrote: >> On 12/9/24 4:24 PM, Hendrik Brueckner wrote: >>> On Mon, Dec 09, 2024 at 03:48:11PM +0100, Janosch Frank wrote: >>>> On 12/6/24 1:27 PM, Hendrik Brueckner wrote: >>>>> 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> >>>> >>>> MSA6 is a prereq, no? >>> >>> MSA6 is the prereq. However, there is no explicit feature definition >>> for the MSA_EXT_6 due to no STFLE and subfunctions only. The only >>> way would be to pick one or more / all MSA6 subfunctions for which >>> there is a feature defined... >> >> Which you did for MSA11, no? > > The other way around. > > Here: MSA_EXT_12 would check/have a dependency on all(?) subfuncs > introduced with MSA_EXT_6. > >> >> I'm not saying that subfunc handling is great :) > > Let me have a look which functions come with MSA_6 related to KIMD/KLMD. > > Would it be OK to have those checks as a separate patch so that cpu > model in general is not blocked? Of course, I mostly want this question being answered in general.
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),