All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Collin Walling <walling@linux.ibm.com>
Cc: qemu-s390x@nongnu.org, qemu-devel@nongnu.org, thuth@redhat.com,
	david@redhat.com, wangyanan55@huawei.com, philmd@linaro.org,
	marcel.apfelbaum@gmail.com, eduardo@habkost.net,
	armbru@redhat.com
Subject: Re: [PATCH v2 1/3] cpu-models: add "disable-deprecated-feats" option to cpu model expansion
Date: Thu, 25 Apr 2024 14:35:23 +0100	[thread overview]
Message-ID: <ZipcG7Dy5t83HKMY@redhat.com> (raw)
In-Reply-To: <d9284ef0-abdd-4976-896d-a78eb04cb349@linux.ibm.com>

On Wed, Apr 24, 2024 at 03:12:42PM -0400, Collin Walling wrote:
> On 4/24/24 13:51, Collin Walling wrote:
> > On 4/24/24 04:20, Daniel P. Berrangé wrote:
> >> On Tue, Apr 23, 2024 at 05:06:53PM -0400, Collin Walling wrote:
> >>> This optional parameter for query-cpu-model-expansion enables CPU
> >>> model features flagged as deprecated to appear in the resulting
> >>> list of properties.
> >>>
> >>> This commit does not add support beyond adding a new argument
> >>> to the query. All queries with this option present will result
> >>> in an error claiming this option is not supported.
> >>>
> >>> Signed-off-by: Collin Walling <walling@linux.ibm.com>
> >>> ---
> >>>  qapi/machine-target.json         | 7 ++++++-
> >>>  target/arm/arm-qmp-cmds.c        | 7 +++++++
> >>>  target/i386/cpu-sysemu.c         | 7 +++++++
> >>>  target/s390x/cpu_models_sysemu.c | 7 +++++++
> >>>  4 files changed, 27 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/qapi/machine-target.json b/qapi/machine-target.json
> >>> index 29e695aa06..b9da284d2d 100644
> >>> --- a/qapi/machine-target.json
> >>> +++ b/qapi/machine-target.json
> >>> @@ -285,6 +285,10 @@
> >>>  #
> >>>  # @type: expansion type, specifying how to expand the CPU model
> >>>  #
> >>> +# @disable-deprecated-feats: include CPU model features that are
> >>> +#     flagged as deprecated. If supported, these features will appear
> >>> +#     in the properties list paired with false.
> >>> +#
> >>>  # Returns: a CpuModelExpansionInfo describing the expanded CPU model
> >>>  #
> >>>  # Errors:
> >>> @@ -298,7 +302,8 @@
> >>>  ##
> >>>  { 'command': 'query-cpu-model-expansion',
> >>>    'data': { 'type': 'CpuModelExpansionType',
> >>> -            'model': 'CpuModelInfo' },
> >>> +            'model': 'CpuModelInfo',
> >>> +            '*disable-deprecated-feats': 'bool' },
> >>>    'returns': 'CpuModelExpansionInfo',
> >>>    'if': { 'any': [ 'TARGET_S390X',
> >>>                     'TARGET_I386',
> >>
> >> I think this is an odd design approach. Lets consider the
> >> current output:
> >>
> >> (QEMU) query-cpu-model-expansion type=static model={"name":"z14"}
> >> {
> >>     "return": {
> >>         "model": {
> >>             "name": "z14-base",
> >>             "props": {
> >>                 "aefsi": true,
> >>                 "aen": true,
> >>                 ...snip...
> >>                 "vxpd": true,
> >>                 "zpci": true
> >>             }
> >>         }
> >>     }
> >> }
> >>
> >>
> >> If we want to inform a mgmt app of some features being deprecated,
> >> why not just unconditionally include that info in the reply thus:
> >>
> >>
> >> (QEMU) query-cpu-model-expansion type=static model={"name":"z14"}
> >> {
> >>     "return": {
> >>         "model": {
> >>             "name": "z14-base",
> >>             "props": {
> >>                 "aefsi": true,
> >>                 "aen": true,
> >>                 ...snip...
> >>                 "vxpd": true,
> >>                 "zpci": true
> >>             }
> >>             "deprecated-props": ["ppa15", "ri"]
> >>         }
> >>     }
> >> }
> >>
> >>
> >>
> >> With regards,
> >> Daniel
> > 
> > That's a good idea. In this way, we're not mucking up any of the CPU
> > model information and this makes it much more clear as to which features
> > are actually deprecated... I like this more.
> > 
> > I'll work on this.
> > 
> 
> Follow-up question as I look more closely to the QMP response data
> structures: should the "deprecated-props" list be added to the
> CpuModelInfo struct, or to the CpuModelExpansionInfo struct?
> 
> The former makes more sense to me, as the deprecated features are tied
> to the actual CPU model... but unsure if other QMP commands would even
> care about this info? I will begin with this approach, and if feedback
> in the interim strongly sways in the other direction, then it should be
> an easy change :)

I hink CpuModelInfo makes more sense than CpuModelExpansionInfo.
The CpuModelExpansionInfo struct feels pretty pointless to me
in fact, since the only thing it contains is CpuModelInfo !

I think it should also be added to 'CpuDefinitionInfo', which
is the return type of 'query-cpu-defintions'.  This command already
has a 'unavailable-features' array listing features which the host
does not support. Conceptually having a 'deprecated-features' array
alongside that is a nice fit.



With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



  reply	other threads:[~2024-04-25 13:36 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-23 21:06 [PATCH v2 0/3] query-cpu-model-expansion: add disable-deprecated-feats arg Collin Walling
2024-04-23 21:06 ` [PATCH v2 1/3] cpu-models: add "disable-deprecated-feats" option to cpu model expansion Collin Walling
2024-04-24  6:19   ` Markus Armbruster
2024-04-24 17:46     ` Collin Walling
2024-04-25  6:31       ` Markus Armbruster
2024-04-25 17:35         ` Collin Walling
2024-04-26  8:18           ` Markus Armbruster
2024-04-24  8:20   ` Daniel P. Berrangé
2024-04-24 17:51     ` Collin Walling
2024-04-24 19:12       ` Collin Walling
2024-04-25 13:35         ` Daniel P. Berrangé [this message]
2024-04-25 16:58           ` Collin Walling
2024-04-23 21:06 ` [PATCH v2 2/3] target/s390x: add support for "disable-deprecated-feats" expansion option Collin Walling
2024-04-24  7:24   ` David Hildenbrand
2024-04-24 18:33     ` Collin Walling
2024-04-25  8:10       ` David Hildenbrand
2024-04-25 16:56         ` Collin Walling
2024-04-23 21:06 ` [PATCH v2 3/3] target/s390x: flag te and cte as deprecated Collin Walling

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZipcG7Dy5t83HKMY@redhat.com \
    --to=berrange@redhat.com \
    --cc=armbru@redhat.com \
    --cc=david@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=walling@linux.ibm.com \
    --cc=wangyanan55@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.