Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes, eaes}-256

2020-05-05 Thread Markus Armbruster
David Hildenbrand  writes:

> [...]
>
>>   1 "msa4-base": true,
>>   1 "pcc-cmac-aes-256": false,
>>   1 "pcc-cmac-eaes-256": false,
>> 
>> The grouping and masking you described appears to apply to
>> query-cpu-model-expansion with type "static".  With type "full", I can
>> see the grouping, but not the masking.  With query-cpu-definitions, I
>> can't see either.
>> 
>> I haven't played with query-cpu-model-comparison and
>> query-cpu-model-baseline.
>
> Grouping will be done whenever all features part of a group are to be
> reported. Please note that "msa4-base" is part of "msa4".
>
> You chose the only model where we do have msa4-base but none of the
> other msa4 features - the qemu model.

Ah, "lucky" random pick.

> So when you do a "query-cpu-definitions" under TCG (which basically maps
> to the qemu model and only has the msa4-base feature), then you do have
> msa4-base of all relevant models, but none of the other sub-features
> they define. That's why you don't see msa4 explicitly, but instead the
> subfeatures.
>
> query-cpu-model-expansion and the others behave similar the same way
> with the "qemu" model. Note that the qemu model is not really used under
> KVM on s390x. There, we use "host" as default.

Next random pick: z13.2 shows msa4 before and after.

 But "'-cpu' setup" doesn't seem to be about reporting features.  Am I
 confused?

>>>
>>> Let me clarify. Any user input would be broken if the two sub-features
>>> would be specified explicitly, instead of the whole "msa4" group. This
>>> applies to any user input, also the user input for query-cpu-model-.
>>>
>>> In the usual cases, libvirt will expand a cpu model (e.g., "host",
>>> "z15") and start QEMU with that (-cpu ...). We will only have the
>>> complete msa4 group here in practice.
>>>
>>> Yes, if some user would pick and chose such features manually, it would
>>> be broken - it's just not the common on s390x with the huge amount of
>>> features. But that's why I thing stable backports still make sense.
>> 
>> The commit message should be accurate and sufficiently precise.  The
>> "sufficiently" gives me some wiggle room to avoid inaccuracy due to my
>> ignorance.  Would the following be good enough?
>> 
>> Impact:
>> 
>> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>>   query-cpu-model-expansion, query-cpu-model-baseline,
>>   query-cpu-model-comparison, and the error message when
>>   s390_realize_cpu_model() fails in check_compatibility().
>> 
>> * s390_cpu_list() also misidentifies it.  Affects -cpu help.
>> 
>> * s390_cpu_model_register_props() creates CPU property
>>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>>   ignored (a later commit will change that).  Results in a single
>>   property "pcc-cmac-eaes-256" with the description for
>>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>>   QOM introspection.
>> 
>> The two features are almost always used via their group msa4.  Such
>> use is not affected by this bug.
>
> Yeah, sounds good, thanks.

Excellent.




Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes,eaes}-256

2020-05-05 Thread David Hildenbrand
[...]

>   1 "msa4-base": true,
>   1 "pcc-cmac-aes-256": false,
>   1 "pcc-cmac-eaes-256": false,
> 
> The grouping and masking you described appears to apply to
> query-cpu-model-expansion with type "static".  With type "full", I can
> see the grouping, but not the masking.  With query-cpu-definitions, I
> can't see either.
> 
> I haven't played with query-cpu-model-comparison and
> query-cpu-model-baseline.

Grouping will be done whenever all features part of a group are to be
reported. Please note that "msa4-base" is part of "msa4".

You chose the only model where we do have msa4-base but none of the
other msa4 features - the qemu model.

So when you do a "query-cpu-definitions" under TCG (which basically maps
to the qemu model and only has the msa4-base feature), then you do have
msa4-base of all relevant models, but none of the other sub-features
they define. That's why you don't see msa4 explicitly, but instead the
subfeatures.

query-cpu-model-expansion and the others behave similar the same way
with the "qemu" model. Note that the qemu model is not really used under
KVM on s390x. There, we use "host" as default.

> 
>>> But "'-cpu' setup" doesn't seem to be about reporting features.  Am I
>>> confused?
>>>
>>
>> Let me clarify. Any user input would be broken if the two sub-features
>> would be specified explicitly, instead of the whole "msa4" group. This
>> applies to any user input, also the user input for query-cpu-model-.
>>
>> In the usual cases, libvirt will expand a cpu model (e.g., "host",
>> "z15") and start QEMU with that (-cpu ...). We will only have the
>> complete msa4 group here in practice.
>>
>> Yes, if some user would pick and chose such features manually, it would
>> be broken - it's just not the common on s390x with the huge amount of
>> features. But that's why I thing stable backports still make sense.
> 
> The commit message should be accurate and sufficiently precise.  The
> "sufficiently" gives me some wiggle room to avoid inaccuracy due to my
> ignorance.  Would the following be good enough?
> 
> Impact:
> 
> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>   query-cpu-model-expansion, query-cpu-model-baseline,
>   query-cpu-model-comparison, and the error message when
>   s390_realize_cpu_model() fails in check_compatibility().
> 
> * s390_cpu_list() also misidentifies it.  Affects -cpu help.
> 
> * s390_cpu_model_register_props() creates CPU property
>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>   ignored (a later commit will change that).  Results in a single
>   property "pcc-cmac-eaes-256" with the description for
>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>   QOM introspection.
> 
> The two features are almost always used via their group msa4.  Such
> use is not affected by this bug.

Yeah, sounds good, thanks.


-- 
Thanks,

David / dhildenb




Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes, eaes}-256

2020-05-05 Thread Markus Armbruster
David Hildenbrand  writes:

> On 02.05.20 08:26, Markus Armbruster wrote:
>> David Hildenbrand  writes:
>> 
>>> On 30.04.20 20:22, Markus Armbruster wrote:
 David Hildenbrand  writes:

> On 28.04.20 18:34, Markus Armbruster wrote:
>> Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
>> s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
>> "pcc-cmac-eaes-256".  The former is obviously a pasto.
>>
>> Impact:
>>
>> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>>   query-cpu-model-expansion, query-cpu-model-baseline,
>>   query-cpu-model-comparison, and the error message when
>>   s390_realize_cpu_model() fails in check_compatibility().
>>
>> * s390_realize_cpu_model() misidentifies it in check_consistency()
>>   warnings.

Actually not, because the feature isn't in check_consistency()'s dep[].
I'll drop this item.

>> * s390_cpu_list() likewise.  Affects -cpu help.
>>
>> * s390_cpu_model_register_props() creates CPU property
>>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>>   ignored (a later commit will change that).  Results in a single
>>   property "pcc-cmac-eaes-256" with the description for
>>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>>   QOM introspection.
>>
>> Fix by deleting the wayward 'e'.
>
> Very nice catch - thanks!

 :)

> While this sounds very bad, it's luckily not that bad in practice
> (currently).
>
> The feature (or rather, both features) is part of the feature group
> "msa4". As long as we have all sub-features part of that group (which is
> usually the case), we will always indicate "msa4" to the user, instead
> of all the separate sub-features. So, expansion, baseline, comparison
> will usually only work with "msa4".
>
> (in addition, current KVM is not capable of actually masking off these
> sub-features, so it will still, always see the feature, even if not
> explicitly specified via "-cpu X,pcc-cmac-aes-256=on)

 Would you like to propose an commit message improvements?
>>>
>>> Maybe something like
>>>
>>> "Both affected features are part of the feature group msa4. In current
>>> setups, we will always see the msa4 feature instead of the separate
>>> contained sub-features (because all sub-features are around). Therefore,
>>> both features are currently never passed from/to the user explicitly
>>> (e.g., via cpu model expansion, comparison, baseline and '-cpu' setup)."
>>>
>>> Thanks!
>> 
>> I think I can guess how this could work for reporting features (I
>> haven't checked my guess against the code), which is what the
>> query-cpu-model-* do: suppress individual features when their group is
>> complete.
>
> Yes. Expand the group to single features on user input, expand the
> single features to the group on user output (if all features are enabled).

Okay, let's play.

Here's query-cpu-definitions:

$ echo -e '{"execute": "qmp_capabilities"}\n{"execute": 
"query-cpu-definitions"}\n{"execute": "quit"}' | 
../qemu/bld/s390x-softmmu/qemu-system-s390x -qmp-pretty stdio -S -display none 
| egrep 'msa4|pcc-cmac-e?aes-256'

Before this patch:

 28 "pcc-cmac-eaes-256",

After:

 14 "pcc-cmac-aes-256",
 14 "pcc-cmac-eaes-256",

No msa4.

Here's query-cpu-model-expansion for model "qemu" (arbitrarily chosen),
type "static":

$ echo -e '{"execute": "qmp_capabilities"}\n{"execute": 
"query-cpu-model-expansion", "arguments": {"type": "full", "model": {"name": 
"qemu"}}}\n{"execute": "quit"}' | $i -qmp-pretty stdio -S -display none | egrep 
'msa4|pcc-cmac-e?aes-256' | sort | uniq -c

Before and after:

  1 "msa4-base": true,

Same with type "full":

$ echo -e '{"execute": "qmp_capabilities"}\n{"execute": 
"query-cpu-model-expansion", "arguments": {"type": "full", "model": {"name": 
"qemu"}}}\n{"execute": "quit"}' | $i -qmp-pretty stdio -S -display none | egrep 
'msa4|pcc-cmac-e?aes-256' | sort | uniq -c

Before:

  1 "msa4-base": true,
  1 "pcc-cmac-eaes-256": false,

After

  1 "msa4-base": true,
  1 "pcc-cmac-aes-256": false,
  1 "pcc-cmac-eaes-256": false,

The grouping and masking you described appears to apply to
query-cpu-model-expansion with type "static".  With type "full", I can
see the grouping, but not the masking.  With query-cpu-definitions, I
can't see either.

I haven't played with query-cpu-model-comparison and
query-cpu-model-baseline.

>> But "'-cpu' setup" doesn't seem to be about 

Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes,eaes}-256

2020-05-04 Thread Christian Borntraeger



On 02.05.20 07:15, Markus Armbruster wrote:
> Christian Borntraeger  writes:
> 
>> On 29.04.20 10:54, Christian Borntraeger wrote:
>>>
>>>
>>> On 28.04.20 19:13, David Hildenbrand wrote:
 On 28.04.20 18:34, Markus Armbruster wrote:
> Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
> s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
> "pcc-cmac-eaes-256".  The former is obviously a pasto.
>
> Impact:
>
> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>   query-cpu-model-expansion, query-cpu-model-baseline,
>   query-cpu-model-comparison, and the error message when
>   s390_realize_cpu_model() fails in check_compatibility().
>
> * s390_realize_cpu_model() misidentifies it in check_consistency()
>   warnings.
>
> * s390_cpu_list() likewise.  Affects -cpu help.
>
> * s390_cpu_model_register_props() creates CPU property
>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>   ignored (a later commit will change that).  Results in a single
>   property "pcc-cmac-eaes-256" with the description for
>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>   QOM introspection.
>
> Fix by deleting the wayward 'e'.

 Very nice catch - thanks!

 While this sounds very bad, it's luckily not that bad in practice
 (currently).

 The feature (or rather, both features) is part of the feature group
 "msa4". As long as we have all sub-features part of that group (which is
 usually the case), we will always indicate "msa4" to the user, instead
 of all the separate sub-features. So, expansion, baseline, comparison
 will usually only work with "msa4".

 (in addition, current KVM is not capable of actually masking off these
 sub-features, so it will still, always see the feature, even if not
 explicitly specified via "-cpu X,pcc-cmac-aes-256=on)

 I think we should do stable backports.
>>>
>>> makes sense, but I would like to do some testing upfront (old QEMU <-> new 
>>> QEMU
>>
>> So migration does work between a qemu with and without the patch for 
>> host-model and
>> custom model=z14. 
> 
> Is this a Tested-by?

Yes. As David pointed out when a user really starts to pick manual things in 
MSA4 then we
can have a non-migrateable guests. But this is still the right thing I guess.



Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes,eaes}-256

2020-05-02 Thread David Hildenbrand
On 02.05.20 08:26, Markus Armbruster wrote:
> David Hildenbrand  writes:
> 
>> On 30.04.20 20:22, Markus Armbruster wrote:
>>> David Hildenbrand  writes:
>>>
 On 28.04.20 18:34, Markus Armbruster wrote:
> Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
> s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
> "pcc-cmac-eaes-256".  The former is obviously a pasto.
>
> Impact:
>
> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>   query-cpu-model-expansion, query-cpu-model-baseline,
>   query-cpu-model-comparison, and the error message when
>   s390_realize_cpu_model() fails in check_compatibility().
>
> * s390_realize_cpu_model() misidentifies it in check_consistency()
>   warnings.
>
> * s390_cpu_list() likewise.  Affects -cpu help.
>
> * s390_cpu_model_register_props() creates CPU property
>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>   ignored (a later commit will change that).  Results in a single
>   property "pcc-cmac-eaes-256" with the description for
>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>   QOM introspection.
>
> Fix by deleting the wayward 'e'.

 Very nice catch - thanks!
>>>
>>> :)
>>>
 While this sounds very bad, it's luckily not that bad in practice
 (currently).

 The feature (or rather, both features) is part of the feature group
 "msa4". As long as we have all sub-features part of that group (which is
 usually the case), we will always indicate "msa4" to the user, instead
 of all the separate sub-features. So, expansion, baseline, comparison
 will usually only work with "msa4".

 (in addition, current KVM is not capable of actually masking off these
 sub-features, so it will still, always see the feature, even if not
 explicitly specified via "-cpu X,pcc-cmac-aes-256=on)
>>>
>>> Would you like to propose an commit message improvements?
>>
>> Maybe something like
>>
>> "Both affected features are part of the feature group msa4. In current
>> setups, we will always see the msa4 feature instead of the separate
>> contained sub-features (because all sub-features are around). Therefore,
>> both features are currently never passed from/to the user explicitly
>> (e.g., via cpu model expansion, comparison, baseline and '-cpu' setup)."
>>
>> Thanks!
> 
> I think I can guess how this could work for reporting features (I
> haven't checked my guess against the code), which is what the
> query-cpu-model-* do: suppress individual features when their group is
> complete.

Yes. Expand the group to single features on user input, expand the
single features to the group on user output (if all features are enabled).

> 
> But "'-cpu' setup" doesn't seem to be about reporting features.  Am I
> confused?
> 

Let me clarify. Any user input would be broken if the two sub-features
would be specified explicitly, instead of the whole "msa4" group. This
applies to any user input, also the user input for query-cpu-model-.

In the usual cases, libvirt will expand a cpu model (e.g., "host",
"z15") and start QEMU with that (-cpu ...). We will only have the
complete msa4 group here in practice.

Yes, if some user would pick and chose such features manually, it would
be broken - it's just not the common on s390x with the huge amount of
features. But that's why I thing stable backports still make sense.

> While testing, I noticed that
> 
> $ s390x-softmmu/qemu-system-s390x
> 
> flashes a window at me, then terminates successfully, without printing
> anything.  With -S, it behaves like other targets.  Bug?
> 

Think this is expected.

t480s: ~  $ qemu-system-s390x --nographic
LOADPARM=[]
Could not find a suitable boot device (none specified)

The s390-ccw bios will come up, detect that there is nothing to boot and
quit. The bios can only print to the sclp console, not to a graphical
output.

What the others do (e.g., ppc64, x86_64) is boot the bios/firmware and
then halt there.

-- 
Thanks,

David / dhildenb




Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes, eaes}-256

2020-05-02 Thread Markus Armbruster
David Hildenbrand  writes:

> On 30.04.20 20:22, Markus Armbruster wrote:
>> David Hildenbrand  writes:
>> 
>>> On 28.04.20 18:34, Markus Armbruster wrote:
 Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
 s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
 "pcc-cmac-eaes-256".  The former is obviously a pasto.

 Impact:

 * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
   query-cpu-model-expansion, query-cpu-model-baseline,
   query-cpu-model-comparison, and the error message when
   s390_realize_cpu_model() fails in check_compatibility().

 * s390_realize_cpu_model() misidentifies it in check_consistency()
   warnings.

 * s390_cpu_list() likewise.  Affects -cpu help.

 * s390_cpu_model_register_props() creates CPU property
   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
   ignored (a later commit will change that).  Results in a single
   property "pcc-cmac-eaes-256" with the description for
   S390_FEAT_PCC_CMAC_AES_256, and no property for
   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
   and -device, QMP & HMP device_add, QMP device-list-properties, and
   QOM introspection.

 Fix by deleting the wayward 'e'.
>>>
>>> Very nice catch - thanks!
>> 
>> :)
>> 
>>> While this sounds very bad, it's luckily not that bad in practice
>>> (currently).
>>>
>>> The feature (or rather, both features) is part of the feature group
>>> "msa4". As long as we have all sub-features part of that group (which is
>>> usually the case), we will always indicate "msa4" to the user, instead
>>> of all the separate sub-features. So, expansion, baseline, comparison
>>> will usually only work with "msa4".
>>>
>>> (in addition, current KVM is not capable of actually masking off these
>>> sub-features, so it will still, always see the feature, even if not
>>> explicitly specified via "-cpu X,pcc-cmac-aes-256=on)
>> 
>> Would you like to propose an commit message improvements?
>
> Maybe something like
>
> "Both affected features are part of the feature group msa4. In current
> setups, we will always see the msa4 feature instead of the separate
> contained sub-features (because all sub-features are around). Therefore,
> both features are currently never passed from/to the user explicitly
> (e.g., via cpu model expansion, comparison, baseline and '-cpu' setup)."
>
> Thanks!

I think I can guess how this could work for reporting features (I
haven't checked my guess against the code), which is what the
query-cpu-model-* do: suppress individual features when their group is
complete.

But "'-cpu' setup" doesn't seem to be about reporting features.  Am I
confused?

While testing, I noticed that

$ s390x-softmmu/qemu-system-s390x

flashes a window at me, then terminates successfully, without printing
anything.  With -S, it behaves like other targets.  Bug?




Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes, eaes}-256

2020-05-01 Thread Markus Armbruster
Christian Borntraeger  writes:

> On 29.04.20 10:54, Christian Borntraeger wrote:
>> 
>> 
>> On 28.04.20 19:13, David Hildenbrand wrote:
>>> On 28.04.20 18:34, Markus Armbruster wrote:
 Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
 s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
 "pcc-cmac-eaes-256".  The former is obviously a pasto.

 Impact:

 * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
   query-cpu-model-expansion, query-cpu-model-baseline,
   query-cpu-model-comparison, and the error message when
   s390_realize_cpu_model() fails in check_compatibility().

 * s390_realize_cpu_model() misidentifies it in check_consistency()
   warnings.

 * s390_cpu_list() likewise.  Affects -cpu help.

 * s390_cpu_model_register_props() creates CPU property
   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
   ignored (a later commit will change that).  Results in a single
   property "pcc-cmac-eaes-256" with the description for
   S390_FEAT_PCC_CMAC_AES_256, and no property for
   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
   and -device, QMP & HMP device_add, QMP device-list-properties, and
   QOM introspection.

 Fix by deleting the wayward 'e'.
>>>
>>> Very nice catch - thanks!
>>>
>>> While this sounds very bad, it's luckily not that bad in practice
>>> (currently).
>>>
>>> The feature (or rather, both features) is part of the feature group
>>> "msa4". As long as we have all sub-features part of that group (which is
>>> usually the case), we will always indicate "msa4" to the user, instead
>>> of all the separate sub-features. So, expansion, baseline, comparison
>>> will usually only work with "msa4".
>>>
>>> (in addition, current KVM is not capable of actually masking off these
>>> sub-features, so it will still, always see the feature, even if not
>>> explicitly specified via "-cpu X,pcc-cmac-aes-256=on)
>>>
>>> I think we should do stable backports.
>> 
>> makes sense, but I would like to do some testing upfront (old QEMU <-> new 
>> QEMU
>
> So migration does work between a qemu with and without the patch for 
> host-model and
> custom model=z14. 

Is this a Tested-by?




Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes,eaes}-256

2020-05-01 Thread David Hildenbrand
On 30.04.20 20:22, Markus Armbruster wrote:
> David Hildenbrand  writes:
> 
>> On 28.04.20 18:34, Markus Armbruster wrote:
>>> Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
>>> s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
>>> "pcc-cmac-eaes-256".  The former is obviously a pasto.
>>>
>>> Impact:
>>>
>>> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>>>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>>>   query-cpu-model-expansion, query-cpu-model-baseline,
>>>   query-cpu-model-comparison, and the error message when
>>>   s390_realize_cpu_model() fails in check_compatibility().
>>>
>>> * s390_realize_cpu_model() misidentifies it in check_consistency()
>>>   warnings.
>>>
>>> * s390_cpu_list() likewise.  Affects -cpu help.
>>>
>>> * s390_cpu_model_register_props() creates CPU property
>>>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>>>   ignored (a later commit will change that).  Results in a single
>>>   property "pcc-cmac-eaes-256" with the description for
>>>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>>>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>>>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>>>   QOM introspection.
>>>
>>> Fix by deleting the wayward 'e'.
>>
>> Very nice catch - thanks!
> 
> :)
> 
>> While this sounds very bad, it's luckily not that bad in practice
>> (currently).
>>
>> The feature (or rather, both features) is part of the feature group
>> "msa4". As long as we have all sub-features part of that group (which is
>> usually the case), we will always indicate "msa4" to the user, instead
>> of all the separate sub-features. So, expansion, baseline, comparison
>> will usually only work with "msa4".
>>
>> (in addition, current KVM is not capable of actually masking off these
>> sub-features, so it will still, always see the feature, even if not
>> explicitly specified via "-cpu X,pcc-cmac-aes-256=on)
> 
> Would you like to propose an commit message improvements?

Maybe something like

"Both affected features are part of the feature group msa4. In current
setups, we will always see the msa4 feature instead of the separate
contained sub-features (because all sub-features are around). Therefore,
both features are currently never passed from/to the user explicitly
(e.g., via cpu model expansion, comparison, baseline and '-cpu' setup)."

Thanks!

-- 
Thanks,

David / dhildenb




Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes,eaes}-256

2020-04-30 Thread Christian Borntraeger



On 29.04.20 10:54, Christian Borntraeger wrote:
> 
> 
> On 28.04.20 19:13, David Hildenbrand wrote:
>> On 28.04.20 18:34, Markus Armbruster wrote:
>>> Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
>>> s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
>>> "pcc-cmac-eaes-256".  The former is obviously a pasto.
>>>
>>> Impact:
>>>
>>> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>>>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>>>   query-cpu-model-expansion, query-cpu-model-baseline,
>>>   query-cpu-model-comparison, and the error message when
>>>   s390_realize_cpu_model() fails in check_compatibility().
>>>
>>> * s390_realize_cpu_model() misidentifies it in check_consistency()
>>>   warnings.
>>>
>>> * s390_cpu_list() likewise.  Affects -cpu help.
>>>
>>> * s390_cpu_model_register_props() creates CPU property
>>>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>>>   ignored (a later commit will change that).  Results in a single
>>>   property "pcc-cmac-eaes-256" with the description for
>>>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>>>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>>>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>>>   QOM introspection.
>>>
>>> Fix by deleting the wayward 'e'.
>>
>> Very nice catch - thanks!
>>
>> While this sounds very bad, it's luckily not that bad in practice
>> (currently).
>>
>> The feature (or rather, both features) is part of the feature group
>> "msa4". As long as we have all sub-features part of that group (which is
>> usually the case), we will always indicate "msa4" to the user, instead
>> of all the separate sub-features. So, expansion, baseline, comparison
>> will usually only work with "msa4".
>>
>> (in addition, current KVM is not capable of actually masking off these
>> sub-features, so it will still, always see the feature, even if not
>> explicitly specified via "-cpu X,pcc-cmac-aes-256=on)
>>
>> I think we should do stable backports.
> 
> makes sense, but I would like to do some testing upfront (old QEMU <-> new 
> QEMU

So migration does work between a qemu with and without the patch for host-model 
and
custom model=z14. 



Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes, eaes}-256

2020-04-30 Thread Markus Armbruster
David Hildenbrand  writes:

> On 28.04.20 18:34, Markus Armbruster wrote:
>> Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
>> s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
>> "pcc-cmac-eaes-256".  The former is obviously a pasto.
>> 
>> Impact:
>> 
>> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>>   query-cpu-model-expansion, query-cpu-model-baseline,
>>   query-cpu-model-comparison, and the error message when
>>   s390_realize_cpu_model() fails in check_compatibility().
>> 
>> * s390_realize_cpu_model() misidentifies it in check_consistency()
>>   warnings.
>> 
>> * s390_cpu_list() likewise.  Affects -cpu help.
>> 
>> * s390_cpu_model_register_props() creates CPU property
>>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>>   ignored (a later commit will change that).  Results in a single
>>   property "pcc-cmac-eaes-256" with the description for
>>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>>   QOM introspection.
>> 
>> Fix by deleting the wayward 'e'.
>
> Very nice catch - thanks!

:)

> While this sounds very bad, it's luckily not that bad in practice
> (currently).
>
> The feature (or rather, both features) is part of the feature group
> "msa4". As long as we have all sub-features part of that group (which is
> usually the case), we will always indicate "msa4" to the user, instead
> of all the separate sub-features. So, expansion, baseline, comparison
> will usually only work with "msa4".
>
> (in addition, current KVM is not capable of actually masking off these
> sub-features, so it will still, always see the feature, even if not
> explicitly specified via "-cpu X,pcc-cmac-aes-256=on)

Would you like to propose an commit message improvements?

> I think we should do stable backports.
>
> Reviewed-by: David Hildenbrand 

Thanks!




Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes,eaes}-256

2020-04-29 Thread Christian Borntraeger



On 28.04.20 19:13, David Hildenbrand wrote:
> On 28.04.20 18:34, Markus Armbruster wrote:
>> Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
>> s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
>> "pcc-cmac-eaes-256".  The former is obviously a pasto.
>>
>> Impact:
>>
>> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>>   query-cpu-model-expansion, query-cpu-model-baseline,
>>   query-cpu-model-comparison, and the error message when
>>   s390_realize_cpu_model() fails in check_compatibility().
>>
>> * s390_realize_cpu_model() misidentifies it in check_consistency()
>>   warnings.
>>
>> * s390_cpu_list() likewise.  Affects -cpu help.
>>
>> * s390_cpu_model_register_props() creates CPU property
>>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>>   ignored (a later commit will change that).  Results in a single
>>   property "pcc-cmac-eaes-256" with the description for
>>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>>   QOM introspection.
>>
>> Fix by deleting the wayward 'e'.
> 
> Very nice catch - thanks!
> 
> While this sounds very bad, it's luckily not that bad in practice
> (currently).
> 
> The feature (or rather, both features) is part of the feature group
> "msa4". As long as we have all sub-features part of that group (which is
> usually the case), we will always indicate "msa4" to the user, instead
> of all the separate sub-features. So, expansion, baseline, comparison
> will usually only work with "msa4".
> 
> (in addition, current KVM is not capable of actually masking off these
> sub-features, so it will still, always see the feature, even if not
> explicitly specified via "-cpu X,pcc-cmac-aes-256=on)
> 
> I think we should do stable backports.

makes sense, but I would like to do some testing upfront (old QEMU <-> new QEMU



Re: [PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes,eaes}-256

2020-04-28 Thread David Hildenbrand
On 28.04.20 18:34, Markus Armbruster wrote:
> Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
> s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
> "pcc-cmac-eaes-256".  The former is obviously a pasto.
> 
> Impact:
> 
> * s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
>   as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
>   query-cpu-model-expansion, query-cpu-model-baseline,
>   query-cpu-model-comparison, and the error message when
>   s390_realize_cpu_model() fails in check_compatibility().
> 
> * s390_realize_cpu_model() misidentifies it in check_consistency()
>   warnings.
> 
> * s390_cpu_list() likewise.  Affects -cpu help.
> 
> * s390_cpu_model_register_props() creates CPU property
>   "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
>   ignored (a later commit will change that).  Results in a single
>   property "pcc-cmac-eaes-256" with the description for
>   S390_FEAT_PCC_CMAC_AES_256, and no property for
>   S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
>   and -device, QMP & HMP device_add, QMP device-list-properties, and
>   QOM introspection.
> 
> Fix by deleting the wayward 'e'.

Very nice catch - thanks!

While this sounds very bad, it's luckily not that bad in practice
(currently).

The feature (or rather, both features) is part of the feature group
"msa4". As long as we have all sub-features part of that group (which is
usually the case), we will always indicate "msa4" to the user, instead
of all the separate sub-features. So, expansion, baseline, comparison
will usually only work with "msa4".

(in addition, current KVM is not capable of actually masking off these
sub-features, so it will still, always see the feature, even if not
explicitly specified via "-cpu X,pcc-cmac-aes-256=on)

I think we should do stable backports.

Reviewed-by: David Hildenbrand 

> 
> Fixes: 782417446279717aa85320191a519b51f6d5dd31
> Cc: Halil Pasic 
> Cc: Cornelia Huck 
> Cc: Christian Borntraeger 
> Cc: Richard Henderson 
> Cc: David Hildenbrand 
> Cc: qemu-s3...@nongnu.org
> Signed-off-by: Markus Armbruster 
> ---
>  target/s390x/cpu_features_def.inc.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target/s390x/cpu_features_def.inc.h 
> b/target/s390x/cpu_features_def.inc.h
> index 31dff0d84e..a8d562d688 100644
> --- a/target/s390x/cpu_features_def.inc.h
> +++ b/target/s390x/cpu_features_def.inc.h
> @@ -310,7 +310,7 @@ DEF_FEAT(PCC_CMAC_ETDEA_192, "pcc-cmac-etdea-128", PCC, 
> 10, "PCC Compute-Last-Bl
>  DEF_FEAT(PCC_CMAC_TDEA, "pcc-cmac-etdea-192", PCC, 11, "PCC 
> Compute-Last-Block-CMAC-Using-EncryptedTDEA-192")
>  DEF_FEAT(PCC_CMAC_AES_128, "pcc-cmac-aes-128", PCC, 18, "PCC 
> Compute-Last-Block-CMAC-Using-AES-128")
>  DEF_FEAT(PCC_CMAC_AES_192, "pcc-cmac-aes-192", PCC, 19, "PCC 
> Compute-Last-Block-CMAC-Using-AES-192")
> -DEF_FEAT(PCC_CMAC_AES_256, "pcc-cmac-eaes-256", PCC, 20, "PCC 
> Compute-Last-Block-CMAC-Using-AES-256")
> +DEF_FEAT(PCC_CMAC_AES_256, "pcc-cmac-aes-256", PCC, 20, "PCC 
> Compute-Last-Block-CMAC-Using-AES-256")
>  DEF_FEAT(PCC_CMAC_EAES_128, "pcc-cmac-eaes-128", PCC, 26, "PCC 
> Compute-Last-Block-CMAC-Using-Encrypted-AES-128")
>  DEF_FEAT(PCC_CMAC_EAES_192, "pcc-cmac-eaes-192", PCC, 27, "PCC 
> Compute-Last-Block-CMAC-Using-Encrypted-AES-192")
>  DEF_FEAT(PCC_CMAC_EAES_256, "pcc-cmac-eaes-256", PCC, 28, "PCC 
> Compute-Last-Block-CMAC-Using-Encrypted-AES-256")
> 


-- 
Thanks,

David / dhildenb




[PATCH 08/17] s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes, eaes}-256

2020-04-28 Thread Markus Armbruster
Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
"pcc-cmac-eaes-256".  The former is obviously a pasto.

Impact:

* s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
  as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
  query-cpu-model-expansion, query-cpu-model-baseline,
  query-cpu-model-comparison, and the error message when
  s390_realize_cpu_model() fails in check_compatibility().

* s390_realize_cpu_model() misidentifies it in check_consistency()
  warnings.

* s390_cpu_list() likewise.  Affects -cpu help.

* s390_cpu_model_register_props() creates CPU property
  "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
  ignored (a later commit will change that).  Results in a single
  property "pcc-cmac-eaes-256" with the description for
  S390_FEAT_PCC_CMAC_AES_256, and no property for
  S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
  and -device, QMP & HMP device_add, QMP device-list-properties, and
  QOM introspection.

Fix by deleting the wayward 'e'.

Fixes: 782417446279717aa85320191a519b51f6d5dd31
Cc: Halil Pasic 
Cc: Cornelia Huck 
Cc: Christian Borntraeger 
Cc: Richard Henderson 
Cc: David Hildenbrand 
Cc: qemu-s3...@nongnu.org
Signed-off-by: Markus Armbruster 
---
 target/s390x/cpu_features_def.inc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/s390x/cpu_features_def.inc.h 
b/target/s390x/cpu_features_def.inc.h
index 31dff0d84e..a8d562d688 100644
--- a/target/s390x/cpu_features_def.inc.h
+++ b/target/s390x/cpu_features_def.inc.h
@@ -310,7 +310,7 @@ DEF_FEAT(PCC_CMAC_ETDEA_192, "pcc-cmac-etdea-128", PCC, 10, 
"PCC Compute-Last-Bl
 DEF_FEAT(PCC_CMAC_TDEA, "pcc-cmac-etdea-192", PCC, 11, "PCC 
Compute-Last-Block-CMAC-Using-EncryptedTDEA-192")
 DEF_FEAT(PCC_CMAC_AES_128, "pcc-cmac-aes-128", PCC, 18, "PCC 
Compute-Last-Block-CMAC-Using-AES-128")
 DEF_FEAT(PCC_CMAC_AES_192, "pcc-cmac-aes-192", PCC, 19, "PCC 
Compute-Last-Block-CMAC-Using-AES-192")
-DEF_FEAT(PCC_CMAC_AES_256, "pcc-cmac-eaes-256", PCC, 20, "PCC 
Compute-Last-Block-CMAC-Using-AES-256")
+DEF_FEAT(PCC_CMAC_AES_256, "pcc-cmac-aes-256", PCC, 20, "PCC 
Compute-Last-Block-CMAC-Using-AES-256")
 DEF_FEAT(PCC_CMAC_EAES_128, "pcc-cmac-eaes-128", PCC, 26, "PCC 
Compute-Last-Block-CMAC-Using-Encrypted-AES-128")
 DEF_FEAT(PCC_CMAC_EAES_192, "pcc-cmac-eaes-192", PCC, 27, "PCC 
Compute-Last-Block-CMAC-Using-Encrypted-AES-192")
 DEF_FEAT(PCC_CMAC_EAES_256, "pcc-cmac-eaes-256", PCC, 28, "PCC 
Compute-Last-Block-CMAC-Using-Encrypted-AES-256")
-- 
2.21.1