From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Mark Burton" <mburton@qti.qualcomm.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Alessandro Di Federico" <ale@rev.ng>,
"Alistair Francis" <alistair.francis@wdc.com>,
"Anton Johansson" <anjo@rev.ng>, "Brian Cain" <bcain@quicinc.com>,
"Chao Peng" <chao.p.peng@linux.intel.com>,
"Neo Jia" <cjia@nvidia.com>, "Cédric Le Goater" <clg@kaod.org>,
"Wedgwood, Chris" <cw@f00f.org>,
dhedde@kalrayinc.com, "Eric Blake" <eblake@redhat.com>,
eblot@rivosinc.com,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"Elena Ufimtseva" <elena.ufimtseva@oracle.com>,
"Auger Eric" <eric.auger@redhat.com>,
"Felipe Franciosi" <felipe@nutanix.com>,
iggy@theiggy.com, "Warner Losh" <imp@bsdimp.com>,
"Jan Kiszka" <jan.kiszka@web.de>,
"Jason Gunthorpe" <jgg@nvidia.com>,
"Jidong Xiao" <jidong.xiao@gmail.com>,
"Jim Shu" <jim.shu@sifive.com>,
"Joao Martins" <joao.m.martins@oracle.com>,
"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
"Luc Michel" <luc@lmichel.fr>,
"Manos Pitsidianakis" <manos.pitsidianakis@linaro.org>,
"Max Chou" <max.chou@sifive.com>,
"Meirav Dean" <mdean@redhat.com>,
mimu@linux.vnet.ibm.com, "Ho, Nelson" <nelson.ho@windriver.com>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"QEMU Developers" <qemu-devel@nongnu.org>,
"Roberto Campesato" <rbc@meta.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Shameerali Kolothum Thodi"
<shameerali.kolothum.thodi@huawei.com>,
"Bernhard Beschow" <shentey@gmail.com>,
"Stefan Hajnoczi" <stefanha@gmail.com>,
"Thomas Huth" <thuth@redhat.com>,
"Wei Wang" <wei.w.wang@intel.com>,
z.huo@139.com, "LIU Zhiwei" <zhiwei_liu@linux.alibaba.com>,
"Wu, Zhiyong" <zwu.kernel@gmail.com>
Subject: Re: KVM/QEMU Community call 29/04/2025 agenda items?
Date: Wed, 30 Apr 2025 12:16:05 +0100 [thread overview]
Message-ID: <aBIGdQab_PufZ2X6@redhat.com> (raw)
In-Reply-To: <87a57ydj8y.fsf@pond.sub.org>
On Wed, Apr 30, 2025 at 12:41:17PM +0200, Markus Armbruster wrote:
> Paolo Bonzini <pbonzini@redhat.com> writes:
>
> > Il lun 28 apr 2025, 14:58 Philippe Mathieu-Daudé <philmd@linaro.org> ha
> > scritto:
> >
> >> On 28/4/25 13:05, Alex Bennée wrote:
> >> >
> >> > Hi,
> >> >
> >> > The KVM/QEMU community call is at:
> >> >
> >> > https://meet.jit.si/kvmcallmeeting
> >> > @
> >> > 29/04/2025 14:00 UTC
> >> >
> >> > Are there any agenda items for the sync-up?
> >> >
> >>
> >> For single binary / heterogeneous emulation, we'd like QAPI to
> >> be "feature-agnostic". In particular, using the example of KVM
> >> accelerator, whether a binary can run with it built-in or not
> >> should be is irrelevant for management applications: they should
> >> only check if it is used (enabled).
> >>
> >> The following series is adding KVM specific structures and commands:
> >>
> >> https://lore.kernel.org/qemu-devel/20250409082649.14733-2-zhao1.liu@intel.com/
> >> It could be interesting to discuss if this can be avoided. But this
> >> can also be discussed on the mailing list (as it is still currently).
> >>
> >
> > Would it be possible to just mark the commands as "do not autoregister" and
> > then do the registration (for example) at machine/accelerator/CPU creation?
> >
> > I think qemu-ga already has a similar run-time registration model but I
> > don't know why QEMU does not use it.
>
> I think we covered this to a degree in
>
> Subject: Re: [RFC PATCH 0/3] single-binary: make QAPI generated files common
> Message-ID: <87a584b69n.fsf@pond.sub.org>
> https://lore.kernel.org/qemu-devel/87a584b69n.fsf@pond.sub.org/
>
> But let me try to give you a shorter argument.
snip
> Another example: the KVM PMU filter series linked above wants to define
>
> { 'enum': 'KvmPmuEventFormat',
> 'data': ['raw', 'x86-select-umask', 'x86-masked-entry'] }
>
> The enum makes sense only when we have CONFIG_KVM. Member @raw makes
> sense regardless of target then. The other two only for TARGET_I386.
NB, ...makes sense only when we have CONFIG_KVM **and** the QEMU
process was launched with '-accel kvm'.
It feels strange that we want our reported schema show a difference when
we launch "qemu-system-x86_64 -accel tcg" between two builds one with
and without CONFIG_KVM, when KVM is not in use ?
Or to reverse the question, why does it matter if we report existence
of KvmPmuEventFormat unconditionally ?
> We could elect to forgo such conditionals. The main disadvantage is
> loss of precision in query-qmp-schema. Which may or may not matter, and
> may or may not box us into corners.
Is the precision we have justifiable ?
When it comes to runtime configuration QMP is already imprecise.
eg set-cpu-topology on x390 is KVM only but still there
when running with TCG
eg reporting query-hotpluggable-cpus on machine types that
lack hotplug
eg reporting set-numa-node on arches/machines that lack NUMA
eg reporting query-balloon when no balloon device is present
eg reporting various xen- commands when either the target
or machine type lack Xen support
eg reporting many cxl-* commands when either the target
or machine type lacks CXL support.
IOW the use of TARGET_ conditionals are only addressing a very
narrow area of (im)precision, whose rationale is largely an
artifact of our historical separate binary / multiple builds
choice. The only real justification for continuing with this
is that we've always done it.
Creating a general runtime conditional mechanism in QAPI feels
like opening a pandora's box.
We'll have a mechanism but it will be impractical to use it fully
enough to be able to claim we are actually precise. The scope of
runtime choices/conditions is too huge.
It risks creating a mechanism that requires a never ending stream
of patches to address continually reported gaps. A potentially
significant maintainer burden.
By comparison the CONFIG_ conditionals in QAPI, both the scope
and semantics clear and it is a fairly tractable problem, although
even there we miss them eg lack of CONFIG_XEN conditions on xen
commands.
> Pierrick volunteered to explore evaluating target-specific QAPI-Schem
> conditionals at run-time instead of compile-time. This would preserve
> the value of query-qmp-schema, unlike conditional command registration.
>
> Finally, syntax isn't everything. We need to preserve behavior, too.
> But that's a separate topic.
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-04-30 11:17 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-28 11:05 KVM/QEMU Community call 29/04/2025 agenda items? Alex Bennée
2025-04-28 12:57 ` Philippe Mathieu-Daudé
2025-04-29 10:09 ` Philippe Mathieu-Daudé
2025-04-29 14:24 ` Paolo Bonzini
2025-04-30 10:41 ` Markus Armbruster
2025-04-30 11:16 ` Daniel P. Berrangé [this message]
2025-05-07 8:24 ` Zhao Liu
2025-05-07 14:34 ` Philippe Mathieu-Daudé
2025-04-30 14:36 ` Philippe Mathieu-Daudé
2025-05-07 15:11 ` Markus Armbruster
2025-05-08 8:47 ` Zhao Liu
2025-05-08 12:32 ` Markus Armbruster
2025-05-08 14:09 ` Daniel P. Berrangé
2025-04-29 15:20 ` Alex Bennée
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=aBIGdQab_PufZ2X6@redhat.com \
--to=berrange@redhat.com \
--cc=ale@rev.ng \
--cc=alex.bennee@linaro.org \
--cc=alistair.francis@wdc.com \
--cc=anjo@rev.ng \
--cc=armbru@redhat.com \
--cc=bcain@quicinc.com \
--cc=chao.p.peng@linux.intel.com \
--cc=cjia@nvidia.com \
--cc=clg@kaod.org \
--cc=cw@f00f.org \
--cc=dhedde@kalrayinc.com \
--cc=eblake@redhat.com \
--cc=eblot@rivosinc.com \
--cc=edgar.iglesias@gmail.com \
--cc=eduardo@habkost.net \
--cc=elena.ufimtseva@oracle.com \
--cc=eric.auger@redhat.com \
--cc=felipe@nutanix.com \
--cc=iggy@theiggy.com \
--cc=imp@bsdimp.com \
--cc=jan.kiszka@web.de \
--cc=jgg@nvidia.com \
--cc=jidong.xiao@gmail.com \
--cc=jim.shu@sifive.com \
--cc=joao.m.martins@oracle.com \
--cc=konrad.wilk@oracle.com \
--cc=luc@lmichel.fr \
--cc=manos.pitsidianakis@linaro.org \
--cc=max.chou@sifive.com \
--cc=mburton@qti.qualcomm.com \
--cc=mdean@redhat.com \
--cc=mimu@linux.vnet.ibm.com \
--cc=nelson.ho@windriver.com \
--cc=paul.walmsley@sifive.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rbc@meta.com \
--cc=richard.henderson@linaro.org \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=shentey@gmail.com \
--cc=stefanha@gmail.com \
--cc=thuth@redhat.com \
--cc=wei.w.wang@intel.com \
--cc=z.huo@139.com \
--cc=zhao1.liu@intel.com \
--cc=zhiwei_liu@linux.alibaba.com \
--cc=zwu.kernel@gmail.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 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).