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 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.