qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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 :|



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