From: Markus Armbruster <armbru@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org,
Richard Henderson <richard.henderson@linaro.org>,
Paolo Bonzini <pbonzini@redhat.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Laurent Vivier <laurent@vivier.eu>,
Thomas Huth <thuth@redhat.com>, Warner Losh <imp@bsdimp.com>,
Kyle Evans <kevans@freebsd.org>
Subject: Re: [RFC PATCH 0/5] Deprecate/rename singlestep command line option
Date: Tue, 07 Feb 2023 16:56:33 +0100 [thread overview]
Message-ID: <87h6vxo4em.fsf@pond.sub.org> (raw)
In-Reply-To: <20230206171359.1327671-1-peter.maydell@linaro.org> (Peter Maydell's message of "Mon, 6 Feb 2023 17:13:54 +0000")
Peter Maydell <peter.maydell@linaro.org> writes:
> The command line option '-singlestep' and its HMP equivalent
> the 'singlestep' command are very confusingly named, because
> they have nothing to do with single-stepping the guest (either
> via the gdb stub or by emulation of guest CPU architectural
> debug facilities). What they actually do is put TCG into a
> mode where it puts only one guest instruction into each
> translation block. This is useful for some circumstances
> such as when you want the -d debug logging to be easier to
> interpret, or if you have a finicky guest binary that wants
> to see interrupts delivered at something other than the end
> of a basic block.
>
> The confusing name is made worse by the fact that our
> documentation for these is so minimal as to be useless
> for telling users what they really do.
>
> This series:
> * renames the 'singlestep' global variable to 'one_insn_per_tb'
> * Adds new '-one-insn-per-tb' command line options and a
> HMP 'one-insn-per-tb' command
> * Documents the '-singlestep' options and 'singlestep'
> HMP command as deprecated synonyms for the new ones
>
> It does not do anything about the other place where we surface
> 'singlestep', which is in the QMP StatusInfo object returned by the
> 'query-status' command. This is incorrectly documented as "true if
> VCPUs are in single-step mode" and "singlestep is enabled through
> the GDB stub", because what it's actually returning is the
> one-insn-per-tb state.
>
> Things I didn't bother with because this is only an RFC but
> will do if it turns into a non-RFC patchset:
> * test the bsd-user changes :-)
> * add text to deprecated.rst
>
> So, questions:
>
> (1) is this worth bothering with at all? We could just
> name our global variable etc better, and document what
> -singlestep actually does, and not bother with the new
> names for the options/commands.
The feature is kind of esoteric. Rather weak excuse for not fixing bad
UI, in my opinion. Weaker still since you already did a good part of
the actual work.
> (2) if we do do it, do we retain the old name indefinitely,
> or actively put it on the deprecate-and-drop list?
By "the old name", you mean the CLI option name, right?
I'd prefer deprecate and drop.
> (3) what should we do about the HMP StatusInfo object?
> I'm not sure how we handle compatibility for HMP.
Uh, you mean *QMP*, don't you?
As you wrote above, StatusInfo is returned by query-status, which is a
stable interface. Changes to members therefore require the usual
deprecation grace period. We'd add a new member with a sane name, and
deprecate the old one.
The matching HMP command is "info status". It shows member @singlestep
as " (single step mode)". Changing that is fine; HMP is not a stable
interface.
next prev parent reply other threads:[~2023-02-07 15:57 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-06 17:13 [RFC PATCH 0/5] Deprecate/rename singlestep command line option Peter Maydell
2023-02-06 17:13 ` [RFC PATCH 1/5] Rename the singlestep global variable to one_insn_per_tb Peter Maydell
2023-02-06 20:20 ` Thomas Huth
2023-02-10 16:48 ` Peter Maydell
2023-02-06 17:13 ` [RFC PATCH 2/5] linux-user: Add '-one-insn-per-tb' option equivalent to '-singlestep' Peter Maydell
2023-02-06 17:13 ` [RFC PATCH 3/5] bsd-user: " Peter Maydell
2023-02-06 17:13 ` [RFC PATCH 4/5] softmmu: " Peter Maydell
2023-02-06 17:13 ` [RFC PATCH 5/5] hmp: Add 'one-insn-per-tb' command equivalent to 'singlestep' Peter Maydell
2023-02-06 18:18 ` [RFC PATCH 0/5] Deprecate/rename singlestep command line option Richard Henderson
2023-02-06 20:17 ` Thomas Huth
2023-02-07 11:01 ` Peter Maydell
2023-02-07 11:33 ` Thomas Huth
2023-02-07 15:56 ` Markus Armbruster [this message]
2023-02-08 23:04 ` Warner Losh
2023-02-13 15:01 ` Dr. David Alan Gilbert
2023-04-03 12:47 ` Peter Maydell
2023-04-03 14:41 ` Markus Armbruster
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=87h6vxo4em.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=imp@bsdimp.com \
--cc=kevans@freebsd.org \
--cc=laurent@vivier.eu \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--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 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.