public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Fabiano Rosas <farosas@suse.de>
Cc: "Markus Armbruster" <armbru@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Stefan Hajnoczi" <stefanha@gmail.com>,
	qemu-devel <qemu-devel@nongnu.org>, kvm <kvm@vger.kernel.org>,
	"Helge Deller" <deller@gmx.de>,
	"Oliver Steffen" <osteffen@redhat.com>,
	"Stefano Garzarella" <sgarzare@redhat.com>,
	"Matias Ezequiel Vara Larsen" <mvaralar@redhat.com>,
	"Kevin Wolf" <kwolf@redhat.com>,
	"German Maglione" <gmaglione@redhat.com>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Alex Bennee" <alex.bennee@linaro.org>,
	"Pierrick Bouvier" <pierrick.bouvier@linaro.org>
Subject: Re: Modern HMP
Date: Thu, 22 Jan 2026 16:00:17 +0000	[thread overview]
Message-ID: <aXJJkd8g0AGZ3EVv@redhat.com> (raw)
In-Reply-To: <87ikctk5ss.fsf@suse.de>

On Thu, Jan 22, 2026 at 12:47:47PM -0300, Fabiano Rosas wrote:
> One question I have is what exactly gets (eventually) removed from QEMU
> and what benefits we expect from it. Is it the entire "manual"
> interaction that's undesirable? Or just that to maintain HMP there is a
> certain amount of duplication? Or even the less-than-perfect
> readline/completion aspects?

Over time we've been gradually separating our human targetted code from
our machine targetted code, whether that's command line argument parsing,
or monitor parsing. Maintaining two ways todo the same thing is always
going to be a maint burden, and in QEMU it has been especially burdensome
as they were parallel impls in many cases, rather than one being exclusively
built on top of the other.

Even today we still get contributors sending patches which only impl
HMP code and not QMP code. Separating HMP fully from QMP so that it
was mandatory to create QMP first gets contributors going down the
right path, and should reduce the burden on maint.

At some point we are likely to introduce a new non-backwards compatible
QEMU binary. Perhaps when Philippe completes his "all targets/machines
in one binary" work. That would be an opportunity to carve HMP off
into a separate out of process facade talking over QMP.

That's only possible though if we get existing HMP into being a layer
over QMP with no backdoor parallel impls. So anything we can do today
to better separate QMP/HMP will give us more flexibility when the time
arrives to create a new QEMU binary without backwards compat cruft.

NB, introducing a new binary does not imply that the old binaries
go away. They would probably stick around for legacy compat for a
good while. For anything using libvirt though, we would be able to
switch to the new binaries pretty fast without, as libvirt can
translate app XML config to either the new or old QEMU dynamically.

> Does the new program becomes basically an external project unrelated to
> QEMU, that simply talks to QMP like libvirt does?

It could be a separate project under QEMU on github, or it could just be
binary in qemu.git. What matters is that it is out of the main QEMU process
eventually.

> I wonder how close to tools like qmp-shell, qmp-tui, etc that would
> become and whether we might actually be looking at a substitute of
> qemu.qmp.

qmp-shell is rather too crude in terms of its data input/output - have
to switch to JSON way too much, and there's no mechanism for formatting
complex QMP replies into pretty human friendly data.

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:[~2026-01-22 16:00 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-05 21:47 Call for GSoC internship project ideas Stefan Hajnoczi
2026-01-13 15:29 ` Peter Xu
2026-01-13 16:16   ` Stefan Hajnoczi
2026-01-13 16:30     ` Peter Xu
     [not found] ` <CAMxuvaz8hm1dc6XdsbK99Ng5sOBNxwWg_-UJdBhyptwgUYjcrw@mail.gmail.com>
2026-01-14 19:26   ` Stefan Hajnoczi
2026-01-20 21:42     ` Stefan Hajnoczi
2026-01-20 21:50       ` Daniel P. Berrangé
2026-01-22 10:49         ` Thomas Huth
2026-01-22 10:14       ` Daniel P. Berrangé
2026-01-22 10:22         ` Marc-André Lureau
2026-01-22 10:39           ` Daniel P. Berrangé
2026-01-22 10:54             ` Peter Maydell
2026-01-22 10:57               ` Daniel P. Berrangé
2026-01-22 11:28                 ` Marc-André Lureau
2026-01-22 11:40                   ` Daniel P. Berrangé
2026-01-22 12:02                   ` Alex Bennée
2026-01-22 15:46                   ` Pierrick Bouvier
2026-01-23  8:44                     ` Marc-André Lureau
2026-01-23 15:56                       ` Pierrick Bouvier
2026-01-26 22:29                       ` Stefan Hajnoczi
2026-01-27  8:34                         ` Stefano Garzarella
2026-01-27 14:19                           ` Stefan Hajnoczi
2026-01-22 10:43         ` Thomas Huth
2026-01-22 10:48           ` Daniel P. Berrangé
2026-01-22 11:05             ` Thomas Huth
2026-01-22 11:24               ` Daniel P. Berrangé
2026-01-22 11:58               ` Alex Bennée
2026-01-22 19:14           ` Stefan Hajnoczi
2026-01-22 11:55         ` Alex Bennée
2026-01-20 22:00     ` John Levon
2026-01-20 21:44   ` Stefan Hajnoczi
2026-01-22  9:38   ` Modern HMP (was: Call for GSoC internship project ideas) Markus Armbruster
2026-01-22 10:00     ` Daniel P. Berrangé
2026-01-22 12:07       ` Modern HMP Markus Armbruster
2026-01-22 12:21         ` Daniel P. Berrangé
2026-01-22 13:07           ` Markus Armbruster
2026-01-22 14:03             ` Daniel P. Berrangé
2026-01-22 15:47           ` Fabiano Rosas
2026-01-22 16:00             ` Daniel P. Berrangé [this message]
2026-01-27 11:17               ` Kevin Wolf
2026-02-01 18:29               ` Dr. David Alan Gilbert
2026-02-04  8:08                 ` Markus Armbruster
2026-02-04  9:07                   ` Daniel P. Berrangé
2026-02-04  9:44                     ` Markus Armbruster
2026-02-05  1:15                   ` Dr. David Alan Gilbert
2026-02-05  6:52                     ` Markus Armbruster
2026-02-05 12:50                       ` Dr. David Alan Gilbert
2026-01-27  9:27 ` Call for GSoC internship project ideas Matias Ezequiel Vara Larsen
2026-01-27 14:15   ` Stefan Hajnoczi
2026-01-29 10:46 ` COCONUT-SVSM project ideas for GSoC 2026 Jörg Rödel
2026-01-29 14:18   ` Stefan Hajnoczi
2026-02-04 13:24     ` Jörg Rödel
2026-02-04 16:12       ` Stefan Hajnoczi

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=aXJJkd8g0AGZ3EVv@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=deller@gmx.de \
    --cc=farosas@suse.de \
    --cc=gmaglione@redhat.com \
    --cc=hreitz@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwolf@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=mvaralar@redhat.com \
    --cc=osteffen@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pierrick.bouvier@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=sgarzare@redhat.com \
    --cc=stefanha@gmail.com \
    --cc=thuth@redhat.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