public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Dr. David Alan Gilbert" <dave@treblig.org>,
	"Fabiano Rosas" <farosas@suse.de>,
	"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: Wed, 4 Feb 2026 09:07:18 +0000	[thread overview]
Message-ID: <aYMMRuWGYe96rpZZ@redhat.com> (raw)
In-Reply-To: <875x8d0w32.fsf@pond.sub.org>

On Wed, Feb 04, 2026 at 09:08:49AM +0100, Markus Armbruster wrote:
> "Dr. David Alan Gilbert" <dave@treblig.org> writes:
> 
> > * Daniel P. Berrangé (berrange@redhat.com) wrote:
> >> 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.
> >
> > Having a separate HMP isn't a bad idea - but it does need some idea of
> > how to make it easy for contributors to add stuff that's just for debug
> > or for the dev.   For HMP the bar is very low; if it's useful to the
> > dev, why not (unless it's copying something that's already in the QMP interface
> > in a different way);  but although the x- stuff in theory lets
> > you add something via QMP, in practice it's quite hard to get it through
> > review without a lot of QMP design bikeshedding.
> 
> I think this description has become less accurate than it used to be :)
> 
> A long time ago, we started with "QMP is a stable, structured interface
> for machines, HMP is a plain text interface for humans, and layered on
> top of QMP."  Layered on top means HMP commands wrap around QMP
> commands.  Ensures that QMP is obviously complete.  Without such a
> layering, we'd have to verify completeness by inspection.  Impractical
> given the size and complexity of the interfaces involved.
> 
> Trouble is there are things in HMP that make no sense in QMP.  For
> instance, HMP command 'cpu' sets the monitor's default CPU, which
> certain HMP commands use.  To wrap 'cpu' around a QMP command, we'd have
> to drag the concept "default CPU" into QMP where it's not wanted.

Surely the isolated HMP monitor code can just keep track of its view
of a "default" CPU, and then pass an explicit CPU to the QMP commands
it runs ?


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-02-04  9:07 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é
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é [this message]
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=aYMMRuWGYe96rpZZ@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=dave@treblig.org \
    --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