All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-devel@nongnu.org,
	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: Re: [PATCH v2 07/10] hmp: Add 'one-insn-per-tb' command equivalent to 'singlestep'
Date: Mon, 3 Apr 2023 18:52:19 +0100	[thread overview]
Message-ID: <ZCsSUwNHIeCLfbl+@work-vm> (raw)
In-Reply-To: <20230403144637.2949366-8-peter.maydell@linaro.org>

* Peter Maydell (peter.maydell@linaro.org) wrote:
> The 'singlestep' HMP command is confusing, because it doesn't
> actually have anything to do with single-stepping the CPU.  What it
> does do is force TCG emulation to put one guest instruction in each
> TB, which can be useful in some situations.
> 
> Create a new HMP command  'one-insn-per-tb', so we can document that
> 'singlestep' is just a deprecated synonym for it, and eventually
> perhaps drop it.
> 
> We aren't obliged to do deprecate-and-drop for HMP commands,
> but it's easy enough to do so, so we do.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  docs/about/deprecated.rst   |  9 +++++++++
>  include/monitor/hmp.h       |  2 +-
>  softmmu/runstate-hmp-cmds.c |  2 +-
>  tests/qtest/test-hmp.c      |  1 +
>  hmp-commands.hx             | 25 +++++++++++++++++++++----
>  5 files changed, 33 insertions(+), 6 deletions(-)
> 
> diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
> index 3c62671dac1..6f5e689aa45 100644
> --- a/docs/about/deprecated.rst
> +++ b/docs/about/deprecated.rst
> @@ -199,6 +199,15 @@ accepted incorrect commands will return an error. Users should make sure that
>  all arguments passed to ``device_add`` are consistent with the documented
>  property types.
>  
> +Human Monitor Protocol (HMP) commands
> +-------------------------------------
> +
> +``singlestep`` (since 8.1)
> +''''''''''''''''''''''''''
> +
> +The ``singlestep`` command has been replaced by the ``one-insn-per-tb``
> +command, which has the same behaviour but a less misleading name.
> +
>  Host Architectures
>  ------------------
>  
> diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
> index fdb69b7f9ca..13f9a2dedb8 100644
> --- a/include/monitor/hmp.h
> +++ b/include/monitor/hmp.h
> @@ -158,7 +158,7 @@ void hmp_info_vcpu_dirty_limit(Monitor *mon, const QDict *qdict);
>  void hmp_human_readable_text_helper(Monitor *mon,
>                                      HumanReadableText *(*qmp_handler)(Error **));
>  void hmp_info_stats(Monitor *mon, const QDict *qdict);
> -void hmp_singlestep(Monitor *mon, const QDict *qdict);
> +void hmp_one_insn_per_tb(Monitor *mon, const QDict *qdict);
>  void hmp_watchdog_action(Monitor *mon, const QDict *qdict);
>  void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);
>  void hmp_info_capture(Monitor *mon, const QDict *qdict);
> diff --git a/softmmu/runstate-hmp-cmds.c b/softmmu/runstate-hmp-cmds.c
> index 127521a483a..76d1399ed85 100644
> --- a/softmmu/runstate-hmp-cmds.c
> +++ b/softmmu/runstate-hmp-cmds.c
> @@ -41,7 +41,7 @@ void hmp_info_status(Monitor *mon, const QDict *qdict)
>      qapi_free_StatusInfo(info);
>  }
>  
> -void hmp_singlestep(Monitor *mon, const QDict *qdict)
> +void hmp_one_insn_per_tb(Monitor *mon, const QDict *qdict)
>  {
>      const char *option = qdict_get_try_str(qdict, "option");
>      AccelState *accel = current_accel();
> diff --git a/tests/qtest/test-hmp.c b/tests/qtest/test-hmp.c
> index b4a920df898..cb3530df722 100644
> --- a/tests/qtest/test-hmp.c
> +++ b/tests/qtest/test-hmp.c
> @@ -64,6 +64,7 @@ static const char *hmp_cmds[] = {
>      "screendump /dev/null",
>      "sendkey x",
>      "singlestep on",
> +    "one-insn-per-tb on",

OK, it wouldn't be bad if this list got a bit back into near alphabetic
order.


Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>


>      "wavcapture /dev/null",
>      "stopcapture 0",
>      "sum 0 512",
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index bb85ee1d267..9afbb54a515 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -378,18 +378,35 @@ SRST
>    only *tag* as parameter.
>  ERST
>  
> +    {
> +        .name       = "one-insn-per-tb",
> +        .args_type  = "option:s?",
> +        .params     = "[on|off]",
> +        .help       = "run emulation with one guest instruction per translation block",
> +        .cmd        = hmp_one_insn_per_tb,
> +    },
> +
> +SRST
> +``one-insn-per-tb [off]``
> +  Run the emulation with one guest instruction per translation block.
> +  This slows down emulation a lot, but can be useful in some situations,
> +  such as when trying to analyse the logs produced by the ``-d`` option.
> +  This only has an effect when using TCG, not with KVM or other accelerators.
> +
> +  If called with option off, the emulation returns to normal mode.
> +ERST
> +
>      {
>          .name       = "singlestep",
>          .args_type  = "option:s?",
>          .params     = "[on|off]",
> -        .help       = "run emulation in singlestep mode or switch to normal mode",
> -        .cmd        = hmp_singlestep,
> +        .help       = "deprecated synonym for one-insn-per-tb",
> +        .cmd        = hmp_one_insn_per_tb,
>      },
>  
>  SRST
>  ``singlestep [off]``
> -  Run the emulation in single step mode.
> -  If called with option off, the emulation returns to normal mode.
> +  This is a deprecated synonym for the one-insn-per-tb command.
>  ERST
>  
>      {
> -- 
> 2.34.1
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



  reply	other threads:[~2023-04-03 17:53 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 [this message]
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
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=ZCsSUwNHIeCLfbl+@work-vm \
    --to=dgilbert@redhat.com \
    --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=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 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.