From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Cc: Richard Henderson <richard.henderson@linaro.org>,
Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>,
libvir-list@redhat.com, Markus Armbruster <armbru@redhat.com>,
Laurent Vivier <laurent@vivier.eu>,
Eric Blake <eblake@redhat.com>
Subject: [PATCH v3 00/10] Deprecate/rename singlestep command line option, monitor interfaces
Date: Mon, 17 Apr 2023 17:40:31 +0100 [thread overview]
Message-ID: <20230417164041.684562-1-peter.maydell@linaro.org> (raw)
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:
* changes the command line interface: for user-mode
emulators, the new option is '-one-insn-per-tb',
and for system mode emulators it is a TCG accel
property '-accel tcg,one-insn-per-tb=on'
* updates all the places which currently directly touch
the 'singlestep' global variable to instead get the
current accelerator and query/set the QOM property
(except the one internal to TCG itself in curr_cflags())
* documents that the old -singlestep option is deprecated
* adds a new HMP command 'one-insn-per-tb', and deprecates
the old 'singlestep' command. (Strictly we don't need to
deprecate HMP commands, but I'd already written the code
for v1 of this series and it's a minor user convenience.)
* moves the 'is one-insn-per-tb on?' info from 'info status'
to 'info jit'
* deprecates the 'singlestep' member of the QMP StatusInfo
type, with no replacement. (We have a sketch of a design
of how we might provide this in QMP if we need to, but
I'm pretty sure nobody using QMP is actually using the
info in the 'singlestep' field, especially since it's
always been wrongly documented and there's no write
interface, only a read one.)
Changes v2->v3:
* curr_cflags() is a hot path, so use a global variable
so it doesn't have to fetch the current accelerator object.
(NB: I haven't done the tcg_global_cflags thing suggested
in review of v2; justification in the below-the-fold part
of the patch 3 commit message notes.)
* put the new line in test-hmp.c in its proper alphabetical
order place in patch 8
* in patch 10 don't provide a replacement field in the
QMP StatusInfo type, just deprecate the old one
* I finally tested that bsd-user compiles, and fixed the
missing-close-bracket error in that patch :-)
Patches still needing review: 3, 7, 10
thanks
-- PMM
Peter Maydell (10):
make one-insn-per-tb an accel option
softmmu: Don't use 'singlestep' global in QMP and HMP commands
accel/tcg: Use one_insn_per_tb global instead of old singlestep global
linux-user: Add '-one-insn-per-tb' option equivalent to '-singlestep'
bsd-user: Add '-one-insn-per-tb' option equivalent to '-singlestep'
Document that -singlestep command line option is deprecated
accel/tcg: Report one-insn-per-tb in 'info jit', not 'info status'
hmp: Add 'one-insn-per-tb' command equivalent to 'singlestep'
qapi/run-state.json: Fix missing newline at end of file
hmp: Deprecate 'singlestep' member of StatusInfo
docs/about/deprecated.rst | 39 +++++++++++++++++++++++++++++++++++++
docs/user/main.rst | 14 +++++++++++--
qapi/run-state.json | 16 +++++++++++----
accel/tcg/internal.h | 2 ++
include/exec/cpu-common.h | 2 --
include/monitor/hmp.h | 2 +-
accel/tcg/cpu-exec.c | 2 +-
accel/tcg/monitor.c | 14 +++++++++++++
accel/tcg/tcg-all.c | 23 ++++++++++++++++++++++
bsd-user/main.c | 14 ++++++++-----
linux-user/main.c | 18 +++++++++++------
softmmu/globals.c | 1 -
softmmu/runstate-hmp-cmds.c | 25 ++++++++++++++++++------
softmmu/runstate.c | 10 +++++++++-
softmmu/vl.c | 17 ++++++++++++++--
tests/qtest/test-hmp.c | 1 +
hmp-commands.hx | 25 ++++++++++++++++++++----
qemu-options.hx | 12 ++++++++++--
tcg/tci/README | 2 +-
19 files changed, 201 insertions(+), 38 deletions(-)
--
2.34.1
next reply other threads:[~2023-04-17 16:42 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-17 16:40 Peter Maydell [this message]
2023-04-17 16:40 ` [PATCH v3 01/10] make one-insn-per-tb an accel option Peter Maydell
2023-04-17 16:40 ` [PATCH v3 02/10] softmmu: Don't use 'singlestep' global in QMP and HMP commands Peter Maydell
2023-04-20 8:54 ` Philippe Mathieu-Daudé
2023-04-17 16:40 ` [PATCH v3 03/10] accel/tcg: Use one_insn_per_tb global instead of old singlestep global Peter Maydell
2023-04-18 8:02 ` Richard Henderson
2023-04-18 8:05 ` Richard Henderson
2023-04-18 9:44 ` Peter Maydell
2023-04-20 8:55 ` Philippe Mathieu-Daudé
2023-04-17 16:40 ` [PATCH v3 04/10] linux-user: Add '-one-insn-per-tb' option equivalent to '-singlestep' Peter Maydell
2023-04-20 9:13 ` Philippe Mathieu-Daudé
2023-04-20 9:19 ` Peter Maydell
2023-04-20 10:05 ` Philippe Mathieu-Daudé
2023-04-17 16:40 ` [PATCH v3 05/10] bsd-user: " Peter Maydell
2023-04-20 9:13 ` Philippe Mathieu-Daudé
2023-04-17 16:40 ` [PATCH v3 06/10] Document that -singlestep command line option is deprecated Peter Maydell
2023-04-20 8:56 ` Philippe Mathieu-Daudé
2023-04-17 16:40 ` [PATCH v3 07/10] accel/tcg: Report one-insn-per-tb in 'info jit', not 'info status' Peter Maydell
2023-04-18 8:06 ` Richard Henderson
2023-04-20 9:02 ` Philippe Mathieu-Daudé
2023-04-17 16:40 ` [PATCH v3 08/10] hmp: Add 'one-insn-per-tb' command equivalent to 'singlestep' Peter Maydell
2023-04-20 9:03 ` Philippe Mathieu-Daudé
2023-04-17 16:40 ` [PATCH v3 09/10] qapi/run-state.json: Fix missing newline at end of file Peter Maydell
2023-04-20 9:04 ` Philippe Mathieu-Daudé
2023-04-17 16:40 ` [PATCH v3 10/10] hmp: Deprecate 'singlestep' member of StatusInfo Peter Maydell
2023-04-18 8:08 ` Richard Henderson
2023-04-20 9:05 ` Philippe Mathieu-Daudé
2023-04-24 10:06 ` Peter Maydell
[not found] ` <87jzy18oqv.fsf@pond.sub.org>
2023-04-25 12:13 ` Peter Maydell
2023-04-25 13:08 ` Markus Armbruster
2023-05-02 10:22 ` [PATCH v3 00/10] Deprecate/rename singlestep command line option, monitor interfaces Peter Maydell
2023-05-02 10:43 ` 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=20230417164041.684562-1-peter.maydell@linaro.org \
--to=peter.maydell@linaro.org \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=imp@bsdimp.com \
--cc=kevans@freebsd.org \
--cc=laurent@vivier.eu \
--cc=libvir-list@redhat.com \
--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).