On 4/26/24 13:35, Collin Walling wrote:
> On 4/26/24 04:42, Markus Armbruster wrote:
>> Collin Walling <wall...@linux.ibm.com> writes:
>>
>>> Retain a list of deprecated features disjoint from any particular
>>> CPU model. A query-cpu-model-expansion reply will now provide a list of
>>> properties (i.e. features) that are flagged as deprecated. Example:
>>>
>>>     {
>>>       "return": {
>>>         "model": {
>>>           "name": "z14.2-base",
>>>           "deprecated-props": [
>>>             "bpb",
>>>             "csske"
>>>           ],
>>>           "props": {
>>>             "pfmfi": false,
>>>             "exrl": true,
>>>             ...a lot more props...
>>>             "skey": false,
>>>             "vxpdeh2": false
>>>           }
>>>         }
>>>       }
>>>     }
>>>
>>> It is recommended that s390 guests operate with these features
>>> explicitly disabled to ensure compatability with future hardware.
>>>
>>> Signed-off-by: Collin Walling <wall...@linux.ibm.com>
>>> ---
>>>  qapi/machine-target.json         |  5 ++++-
>>>  target/s390x/cpu_features.c      | 14 ++++++++++++++
>>>  target/s390x/cpu_features.h      |  1 +
>>>  target/s390x/cpu_models_sysemu.c |  6 ++++++
>>>  4 files changed, 25 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/qapi/machine-target.json b/qapi/machine-target.json
>>> index 29e695aa06..3799a60e3d 100644
>>> --- a/qapi/machine-target.json
>>> +++ b/qapi/machine-target.json
>>> @@ -20,11 +20,14 @@
>>>  #
>>>  # @props: a dictionary of QOM properties to be applied
>>>  #
>>> +# @deprecated-props: a list of QOM properties that are flagged as 
>>> deprecated
>>
>> Deprecated by whom?  QEMU?  The CPU vendor?
>>
> 
> The CPU vendor would be the one who decides which props are deprecated.
> How about:
> 
> # @deprecated-props: a list of QOM properties that are flagged as
>                    deprecated by the CPU vendor
> 

^ let's ignore the incorrect indentation here.

Actually, I may be wildly incorrect with my description by referring to
this as "a list of QOM properties", when in fact this is just an array
of strings.  Also, the deprecated props may not always reflect the
features that are found by a static expansion, so I added another
sentence to describe that they are a part of a full model expansion.

# @deprecated-props: a list of properties that are flagged as deprecated
#     by the CPU vendor.  These props are a subset of the model's full
#     definition list of properties. (since X.Y)

I may need some help with the wording on the 2nd sentence.

[...]

> 
>>> +#
>>>  # Since: 2.8
>>>  ##
>>>  { 'struct': 'CpuModelInfo',
>>>    'data': { 'name': 'str',
>>> -            '*props': 'any' } }
>>> +            '*props': 'any',
>>> +            '*deprecated-props': ['str'] } }
>>>  
>>>  ##
>>>  # @CpuModelExpansionType:
>>
>> [...]
>>
>>
> 

-- 
Regards,
  Collin


Reply via email to