From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, "Peter Maydell" <peter.maydell@linaro.org>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
"Richard Henderson" <richard.henderson@linaro.org>
Subject: Re: [PATCH 09/10] qapi: make most CPU commands unconditionally available
Date: Tue, 13 May 2025 17:37:07 +0100 [thread overview]
Message-ID: <aCN1M11bqOY0c7Fn@redhat.com> (raw)
In-Reply-To: <87jz6kd6iv.fsf@pond.sub.org>
On Tue, May 13, 2025 at 02:44:40PM +0200, Markus Armbruster wrote:
> Daniel P. Berrangé <berrange@redhat.com> writes:
>
> > This removes the TARGET_* conditions from all the CPU commands
> > that are conceptually target independent. Top level stubs are
> > provided to cope with targets which do not currently implement
> > all of the commands.
> >
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> > qapi/machine-target.json | 397 --------------------------
> > qapi/machine.json | 363 +++++++++++++++++++++++
> > stubs/meson.build | 2 +
> > stubs/monitor-cpu-s390x.c | 23 ++
> > stubs/monitor-cpu.c | 21 ++
> > target/arm/arm-qmp-cmds.c | 2 +-
> > target/i386/cpu-system.c | 2 +-
> > target/i386/cpu.c | 2 +-
> > target/loongarch/loongarch-qmp-cmds.c | 2 +-
> > target/mips/system/mips-qmp-cmds.c | 12 +-
> > target/ppc/ppc-qmp-cmds.c | 12 +-
> > target/riscv/riscv-qmp-cmds.c | 2 +-
> > target/s390x/cpu_models_system.c | 2 +-
> > 13 files changed, 437 insertions(+), 405 deletions(-)
> > create mode 100644 stubs/monitor-cpu-s390x.c
> > create mode 100644 stubs/monitor-cpu.c
snip
> > +##
> > +# @query-cpu-model-comparison:
> > +#
> > +# Compares two CPU models, @modela and @modelb, returning how they
> > +# compare in a specific configuration. The results indicates how
> > +# both models compare regarding runnability. This result can be
> > +# used by tooling to make decisions if a certain CPU model will
> > +# run in a certain configuration or if a compatible CPU model has
> > +# to be created by baselining.
> > +#
> > +# Usually, a CPU model is compared against the maximum possible CPU
> > +# model of a certain configuration (e.g. the "host" model for KVM).
> > +# If that CPU model is identical or a subset, it will run in that
> > +# configuration.
> > +#
> > +# The result returned by this command may be affected by:
> > +#
> > +# * QEMU version: CPU models may look different depending on the QEMU
> > +# version. (Except for CPU models reported as "static" in
> > +# query-cpu-definitions.)
> > +# * machine-type: CPU model may look different depending on the
> > +# machine-type. (Except for CPU models reported as "static" in
> > +# query-cpu-definitions.)
> > +# * machine options (including accelerator): in some architectures,
> > +# CPU models may look different depending on machine and accelerator
> > +# options. (Except for CPU models reported as "static" in
> > +# query-cpu-definitions.)
> > +# * "-cpu" arguments and global properties: arguments to the -cpu
> > +# option and global properties may affect expansion of CPU models.
> > +# Using query-cpu-model-expansion while using these is not advised.
> > +#
> > +# Some architectures may not support comparing CPU models. s390x
> > +# supports comparing CPU models.
> > +#
> > +# @modela: description of the first CPU model to compare, referred to
> > +# as "model A" in CpuModelCompareResult
> > +#
> > +# @modelb: description of the second CPU model to compare, referred to
> > +# as "model B" in CpuModelCompareResult
> > +#
> > +# Returns: a CpuModelCompareInfo describing how both CPU models
> > +# compare
> > +#
> > +# Errors:
> > +# - if comparing CPU models is not supported by the target
>
> You add "by the target", and ...
>
> > +# - if a model cannot be used
> > +# - if a model contains an unknown cpu definition name, unknown
> > +# properties or properties with wrong types.
>
> delete this note:
>
> # .. note:: This command isn't specific to s390x, but is only
> # implemented on this architecture currently.
>
> Lost: command currently works just for s390x targets. Intentional?
Kind of.
Previously, the whole command would be tagged for TARGET_S390X
so the command was not available at all.
Now its always available, but may return an error at runtime
for some targets.
Since we're not providing any mechanism for apps to detect
which targets will work and which won't, the implication
is that apps are expected to try it if they need it, and
cope with any error.
From that POV I thought it might be better not to call
out a point-in-time limitation of the impl. I'm not too
fussed either way though, so we could re-instate the
note.
> Same for query-cpu-model-baseline below.
Likewise
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 :|
next prev parent reply other threads:[~2025-05-13 16:38 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-08 13:58 [PATCH RFC 00/10] qapi: remove all TARGET_* conditionals from the schema Daniel P. Berrangé
2025-05-08 13:58 ` [PATCH 01/10] qapi: expose rtc-reset-reinjection command unconditionally Daniel P. Berrangé
2025-05-10 9:57 ` Markus Armbruster
2025-05-12 18:33 ` Daniel P. Berrangé
2025-05-13 0:54 ` Pierrick Bouvier
2025-05-13 1:09 ` Pierrick Bouvier
2025-05-13 7:55 ` Markus Armbruster
2025-05-08 13:58 ` [PATCH 02/10] qapi: expand docs for SEV commands Daniel P. Berrangé
2025-05-13 12:06 ` Markus Armbruster
2025-05-13 12:21 ` Daniel P. Berrangé
2025-05-08 13:58 ` [PATCH 03/10] qapi: make SEV commands unconditionally available Daniel P. Berrangé
2025-05-08 13:58 ` [PATCH 04/10] qapi: expose query-gic-capability command unconditionally Daniel P. Berrangé
2025-05-08 13:58 ` [PATCH 05/10] qapi: make SGX commands unconditionally available Daniel P. Berrangé
2025-05-08 13:58 ` [PATCH 06/10] qapi: make Xen event " Daniel P. Berrangé
2025-05-08 15:01 ` Philippe Mathieu-Daudé
2025-05-08 17:48 ` David Woodhouse
2025-05-08 17:53 ` Daniel P. Berrangé
2025-05-08 19:08 ` David Woodhouse
2025-05-08 13:58 ` [PATCH 07/10] qapi: remove the misc-target.json file Daniel P. Berrangé
2025-05-08 13:58 ` [PATCH 08/10] qapi: Make CpuModelExpansionInfo::deprecated-props optional and generic Daniel P. Berrangé
2025-05-13 12:38 ` Markus Armbruster
2025-05-13 12:41 ` Daniel P. Berrangé
2025-05-08 13:58 ` [PATCH 09/10] qapi: make most CPU commands unconditionally available Daniel P. Berrangé
2025-05-08 20:55 ` Pierrick Bouvier
2025-05-13 12:44 ` Markus Armbruster
2025-05-13 16:37 ` Daniel P. Berrangé [this message]
2025-05-08 13:58 ` [PATCH 10/10] qapi: make s390x specific " Daniel P. Berrangé
2025-05-08 14:56 ` [PATCH RFC 00/10] qapi: remove all TARGET_* conditionals from the schema Philippe Mathieu-Daudé
2025-05-08 14:58 ` Daniel P. Berrangé
2025-05-08 21:09 ` Pierrick Bouvier
2025-05-09 9:02 ` Daniel P. Berrangé
2025-05-09 13:43 ` Markus Armbruster
2025-05-09 13:56 ` Daniel P. Berrangé
2025-05-10 6:08 ` Markus Armbruster
2025-05-12 18:38 ` Daniel P. Berrangé
2025-05-10 9:28 ` Markus Armbruster
2025-05-12 18:39 ` Daniel P. Berrangé
2025-05-12 20:09 ` Pierrick Bouvier
2025-05-13 7:59 ` Markus Armbruster
2025-05-13 14:36 ` Pierrick Bouvier
2025-05-13 14:55 ` Daniel P. Berrangé
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=aCN1M11bqOY0c7Fn@redhat.com \
--to=berrange@redhat.com \
--cc=armbru@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).