qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Pavel Dovgalyuk" <dovgaluk@ispras.ru>
To: 'Markus Armbruster' <armbru@redhat.com>,
	'Pavel Dovgalyuk' <Pavel.Dovgaluk@ispras.ru>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com,
	peter.maydell@linaro.org, war2jordan@live.com,
	pbonzini@redhat.com, crosthwaite.peter@gmail.com,
	ciro.santilli@gmail.com, jasowang@redhat.com,
	quintela@redhat.com, mreitz@redhat.com, alex.bennee@linaro.org,
	maria.klimushenkova@ispras.ru, mst@redhat.com, kraxel@redhat.com,
	boost.lists@gmail.com, thomas.dullien@googlemail.com,
	artem.k.pisarenko@gmail.com, dgilbert@redhat.com,
	rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH v8 10/20] replay: introduce info hmp/qmp command
Date: Fri, 21 Dec 2018 11:07:49 +0300	[thread overview]
Message-ID: <002a01d49904$43f86c20$cbe94460$@ru> (raw)
In-Reply-To: <87y38lit4n.fsf@dusky.pond.sub.org>

> From: Markus Armbruster [mailto:armbru@redhat.com]
> Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> writes:
> 
> > This patch introduces 'info replay' monitor command and
> > corresponding qmp request.
> > These commands request the current record/replay mode, replay log file name,
> > and the execution step (number or recorded/replayed instructions).
> > User may use step number for replay_seek/replay_break commands and
> > for controlling the execution of replay.
> >
> > Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
> > Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> >
> > --
> >
> > v2:
> >  - renamed info_replay qmp into query-replay (suggested by Eric Blake)
> > v7:
> >  - added empty line (suggested by Markus Armbruster)
> > ---
> >  hmp-commands-info.hx      |   14 ++++++++++++++
> >  hmp.h                     |    1 +
> >  qapi/misc.json            |   35 +++++++++++++++++++++++++++++++++++
> >  replay/Makefile.objs      |    3 ++-
> >  replay/replay-debugging.c |   42 ++++++++++++++++++++++++++++++++++++++++++
> >  5 files changed, 94 insertions(+), 1 deletion(-)
> >  create mode 100644 replay/replay-debugging.c
> >
> > diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
> > index cbee8b9..9f2f35e 100644
> > --- a/hmp-commands-info.hx
> > +++ b/hmp-commands-info.hx
> > @@ -918,6 +918,20 @@ STEXI
> >  Show SEV information.
> >  ETEXI
> >
> > +    {
> > +        .name       = "replay",
> > +        .args_type  = "",
> > +        .params     = "",
> > +        .help       = "show parameters of the record/replay",
> > +        .cmd        = hmp_info_replay,
> > +    },
> > +
> > +STEXI
> > +@item info replay
> > +@findex info replay
> > +Display the current record/replay mode and the currently executing step.
> > +ETEXI
> > +
> >  STEXI
> >  @end table
> >  ETEXI
> > diff --git a/hmp.h b/hmp.h
> > index 5f1addc..d792149 100644
> > --- a/hmp.h
> > +++ b/hmp.h
> > @@ -148,5 +148,6 @@ void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict);
> >  void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict);
> >  void hmp_info_memory_size_summary(Monitor *mon, const QDict *qdict);
> >  void hmp_info_sev(Monitor *mon, const QDict *qdict);
> > +void hmp_info_replay(Monitor *mon, const QDict *qdict);
> >
> >  #endif
> > diff --git a/qapi/misc.json b/qapi/misc.json
> > index 8325e0d..e47aea6 100644
> > --- a/qapi/misc.json
> > +++ b/qapi/misc.json
> > @@ -3113,6 +3113,41 @@
> >    'data': [ 'none', 'record', 'play' ] }
> >
> >  ##
> > +# @ReplayInfo:
> > +#
> > +# Status of the record/replay mode.
> > +#
> > +# @mode: current mode.
> > +#
> > +# @filename: name of the record/replay log file.
> > +#
> > +# @step: current step number.
> > +#
> > +# Since: 4.0
> > +#
> > +##
> > +{ 'struct': 'ReplayInfo',
> > +  'data': { 'mode': 'ReplayMode', '*filename': 'str', 'step': 'int' } }
> 
> @filename is optional.  For each ReplayMode: is @filename always absent,
> always present, or can it be either?
> 
> > +
> > +##
> > +# @query-replay:
> > +#
> > +# Retrieves the status of the execution record/replay.
> > +#
> > +# Returns: structure with the properties of the record/replay.
> 
> You've used "parameters of the record/replay" (in HMP help info),
> "status of the record/replay mode" (QMP ReplayInfo doc), "the status of
> the execution record/replay" (QMP query-replay doc), and "structure with
> the properties of the record/replay".  Please pick one.  I think I'd
> pick "record/replay information".
> 
> In my (superficial) review of v6, I asked what a client would do with
> @step.  You gave two use cases:
> 
>  1. Control current step to be sure that replay is not stalled due to the bug.
>  2. Requesting the step for some moment of execution to use it as a parameter
>     of replay_seek/replay_break operations. I.e., for returning to the same
>     point later.
> 
> The first one is a bit vague.  The second one sounds plausible enough to
> me at least for stopped VMs (for running VMs, it feels too imprecise to
> be useful, but what do I know).  replay-break is in PATCH 11,
> replay-seek in PATCH 12.  Would it make sense add a suitable reference
> to ReplayInfo's documentation then?

Thanks for reviewing, I'll update this in the next version.

Pavel Dovgalyuk

  reply	other threads:[~2018-12-21  8:07 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-18 11:20 [Qemu-devel] [PATCH v8 00/20] Fixing record/replay and adding reverse debugging Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 01/20] replay: add missing fix for internal function Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 02/20] block: implement bdrv_snapshot_goto for blkreplay Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 03/20] replay: disable default snapshot for record/replay Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 04/20] replay: update docs for record/replay with block devices Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 05/20] replay: don't drain/flush bdrv queue while RR is working Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 06/20] replay: finish record/replay before closing the disks Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 07/20] qcow2: introduce icount field for snapshots Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 08/20] migration: " Pavel Dovgalyuk
2018-12-19 12:48   ` Markus Armbruster
2018-12-21 10:39     ` Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 09/20] replay: provide and accessor for rr filename Pavel Dovgalyuk
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 10/20] replay: introduce info hmp/qmp command Pavel Dovgalyuk
2018-12-19 12:43   ` Markus Armbruster
2018-12-21  8:07     ` Pavel Dovgalyuk [this message]
2018-12-18 11:21 ` [Qemu-devel] [PATCH v8 11/20] replay: introduce breakpoint at the specified step Pavel Dovgalyuk
2018-12-19 13:06   ` Markus Armbruster
2018-12-18 11:22 ` [Qemu-devel] [PATCH v8 12/20] replay: implement replay-seek command to proceed to the desired step Pavel Dovgalyuk
2018-12-19 13:08   ` Markus Armbruster
2018-12-18 11:22 ` [Qemu-devel] [PATCH v8 13/20] replay: refine replay-time module Pavel Dovgalyuk
2018-12-18 11:22 ` [Qemu-devel] [PATCH v8 14/20] replay: flush rr queue before loading the vmstate Pavel Dovgalyuk
2018-12-18 11:22 ` [Qemu-devel] [PATCH v8 15/20] gdbstub: add reverse step support in replay mode Pavel Dovgalyuk
2018-12-18 11:22 ` [Qemu-devel] [PATCH v8 16/20] gdbstub: add reverse continue " Pavel Dovgalyuk
2018-12-18 11:22 ` [Qemu-devel] [PATCH v8 17/20] replay: describe reverse debugging in docs/replay.txt Pavel Dovgalyuk
2018-12-18 11:22 ` [Qemu-devel] [PATCH v8 18/20] replay: add BH oneshot event for block layer Pavel Dovgalyuk
2018-12-18 11:22 ` [Qemu-devel] [PATCH v8 19/20] replay: init rtc after enabling the replay Pavel Dovgalyuk
2018-12-18 11:22 ` [Qemu-devel] [PATCH v8 20/20] replay: document development rules Pavel Dovgalyuk
2018-12-18 17:23   ` Artem Pisarenko
2018-12-24 18:24 ` [Qemu-devel] [PATCH v8 00/20] Fixing record/replay and adding reverse debugging no-reply

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='002a01d49904$43f86c20$cbe94460$@ru' \
    --to=dovgaluk@ispras.ru \
    --cc=Pavel.Dovgaluk@ispras.ru \
    --cc=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=artem.k.pisarenko@gmail.com \
    --cc=boost.lists@gmail.com \
    --cc=ciro.santilli@gmail.com \
    --cc=crosthwaite.peter@gmail.com \
    --cc=dgilbert@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=maria.klimushenkova@ispras.ru \
    --cc=mreitz@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=rth@twiddle.net \
    --cc=thomas.dullien@googlemail.com \
    --cc=war2jordan@live.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;
as well as URLs for NNTP newsgroup(s).