qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Markus Armbruster <armbru@redhat.com>,
	qemu-devel@nongnu.org,
	Richard Henderson <richard.henderson@linaro.org>,
	Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>,
	libvir-list@redhat.com, Laurent Vivier <laurent@vivier.eu>,
	Eric Blake <eblake@redhat.com>,
	dave@treblig.org
Subject: Re: [PATCH v2 10/10] hmp: Deprecate 'singlestep' member of StatusInfo
Date: Wed, 5 Apr 2023 15:56:26 +0100	[thread overview]
Message-ID: <ZC2MGswxJiBfhPR2@work-vm> (raw)
In-Reply-To: <CAFEAcA9owMUFkwy-CPC7i=ZFiqce=bzV9YJNFK9YQbh3oOAj1w@mail.gmail.com>

* Peter Maydell (peter.maydell@linaro.org) wrote:
> On Tue, 4 Apr 2023 at 14:25, Markus Armbruster <armbru@redhat.com> wrote:
> >
> > Peter Maydell <peter.maydell@linaro.org> writes:
> >
> > > On Tue, 4 Apr 2023 at 09:25, Markus Armbruster <armbru@redhat.com> wrote:
> > >> Hmm.  We report it in query-status, which means it's relevant to QMP
> > >> clients.  We provide the command to control it only in HMP, which means
> > >> it's not relevant to QMP clients.
> > >>
> > >> Why is reading it relevant to QMP clients, but not writing?
> > >
> > > I suspect that neither is very relevant to QMP clients, but I
> > > thought we had a requirement that HMP interfaces went
> > > via QMP ones ?
> >
> > Kind of.  Here's my current boilerplate on the subject:
> >
> >     HMP commands without a QMP equivalent are okay if their
> >     functionality makes no sense in QMP, or is of use only for human
> >     users.
> >
> >     Example for "makes no sense in QMP": setting the current CPU,
> >     because a QMP monitor doesn't have a current CPU.
> >
> >     Examples for "is of use only for human users": HMP command "help",
> >     the integrated pocket calculator.
> >
> >     Debugging commands are kind of borderline.  Debugging is commonly a
> >     human activity, where HMP is just fine.  However, humans create
> >     tools to assist with their activities, and then QMP is useful.
> >     While I wouldn't encourage HMP-only for the debugging use case, I
> >     wouldn't veto it.
> >
> > When adding an HMP-only command, explain why it is HMP-only in the
> > commit message.
> >
> > >                If not, we could just make the HMP query
> > > interface directly look at the TCG property, the way the
> > > write interface does.
> >
> > How useful is it HMP?
> 
> Well, as usual, we have no idea if anybody really uses any feature.
> I've never used it myself but I have a vague recollection of reading
> list mail once from somebody who used it. You can construct theoretical
> scenarios where it might be nice (eg "boot guest OS quickly and then
> turn on the one-insn-per-tb mode once you get to the point of interest"),
> I guess. These theoretical scenarios are equally valid (or esoteric)
> whether you're trying to control QEMU via QMP or HMP.
> 
> I think on balance I would go for:
>  * remove (ie deprecate-and-drop) 'singlestep' from the QMP struct,
>    rather than merely renaming it
>  * if anybody comes along and says they want to do this via QMP,
>    implement Paolo's idea of putting the accelerator object
>    somewhere they can get at it and use qom-get/qom-set on it
>    [My guess is this is very unlikely: nobody's complained so
>    far that QMP doesn't permit setting 'singlestep'; and
>    wanting read without write seems even more marginal.]
>  * keep the HMP commands, but have both read and write directly
>    talk to the accel object. I favour splitting the 'read'
>    part out into its own 'info one-insn-per-tb', for consistency
>    (then 'info status' matches the QMP query-status)

If it's pretty obscure, then the qom-set/get is fine; as long
as there is a way to do it, then just make sure in the commit
message you say what the replacement command is.

Dave

> In particular, the fact that messing with this obscure debug
> functionality requires updating the reference-output for a
> bunch of io tests that have no interest at all in it rather
> suggests that even if we did want to expose this to QMP that
> the query-status command is the wrong place to do it.
> 
> thanks
> -- PMM
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



  parent reply	other threads:[~2023-04-05 14:56 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-03 14:46 [PATCH v2 00/10] Deprecate/rename singlestep command line option, monitor interfaces Peter Maydell
2023-04-03 14:46 ` [PATCH v2 01/10] make one-insn-per-tb an accel option Peter Maydell
2023-04-03 18:23   ` Richard Henderson
2023-04-03 14:46 ` [PATCH v2 02/10] softmmu: Don't use 'singlestep' global in QMP and HMP commands Peter Maydell
2023-04-03 18:25   ` Richard Henderson
2023-04-03 14:46 ` [PATCH v2 03/10] tcg: Use one-insn-per-tb accelerator property in curr_cflags() Peter Maydell
2023-04-03 18:33   ` Richard Henderson
2023-04-13 16:24     ` Peter Maydell
2023-04-14  6:17       ` Richard Henderson
2023-04-03 14:46 ` [PATCH v2 04/10] linux-user: Add '-one-insn-per-tb' option equivalent to '-singlestep' Peter Maydell
2023-04-03 18:35   ` Richard Henderson
2023-04-03 20:48     ` Warner Losh
2023-04-03 14:46 ` [PATCH v2 05/10] bsd-user: " Peter Maydell
2023-04-03 19:20   ` Richard Henderson
2023-04-03 20:46   ` Warner Losh
2023-04-03 14:46 ` [PATCH v2 06/10] Document that -singlestep command line option is deprecated Peter Maydell
2023-04-03 19:21   ` Richard Henderson
2023-04-03 14:46 ` [PATCH v2 07/10] hmp: Add 'one-insn-per-tb' command equivalent to 'singlestep' Peter Maydell
2023-04-03 17:52   ` Dr. David Alan Gilbert
2023-04-03 19:22   ` Richard Henderson
2023-04-03 14:46 ` [PATCH v2 08/10] hmp: Report 'one-insn-per-tb', not 'single step mode', in 'info status' output Peter Maydell
2023-04-03 19:22   ` Richard Henderson
2023-04-03 14:46 ` [PATCH v2 09/10] qapi/run-state.json: Fix missing newline at end of file Peter Maydell
2023-04-03 19:22   ` Richard Henderson
2023-04-03 14:46 ` [PATCH v2 10/10] hmp: Deprecate 'singlestep' member of StatusInfo Peter Maydell
2023-04-04  8:25   ` Markus Armbruster
2023-04-04  9:17     ` Peter Maydell
2023-04-04 13:25       ` Markus Armbruster
2023-04-04 14:24         ` Peter Maydell
2023-04-04 14:55           ` Paolo Bonzini
2023-04-05 14:56           ` Dr. David Alan Gilbert [this message]
2023-04-05 14:59             ` Peter Maydell
2023-04-05 15:01               ` Dr. David Alan Gilbert
2023-04-04 14:11       ` Paolo Bonzini
2023-04-03 16:42 ` [PATCH v2 00/10] Deprecate/rename singlestep command line option, monitor interfaces Richard Henderson

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=ZC2MGswxJiBfhPR2@work-vm \
    --to=dgilbert@redhat.com \
    --cc=armbru@redhat.com \
    --cc=dave@treblig.org \
    --cc=eblake@redhat.com \
    --cc=imp@bsdimp.com \
    --cc=kevans@freebsd.org \
    --cc=laurent@vivier.eu \
    --cc=libvir-list@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /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).