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 08/20] migration: introduce icount field for snapshots
Date: Fri, 21 Dec 2018 13:39:11 +0300 [thread overview]
Message-ID: <003301d49919$6966bd80$3c343880$@ru> (raw)
In-Reply-To: <87tvj9isxk.fsf@dusky.pond.sub.org>
> From: Markus Armbruster [mailto:armbru@redhat.com]
> Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> writes:
>
> > Saving icount as a parameters of the snapshot allows navigation between
> > them in the execution replay scenario.
> > This information can be used for finding a specific snapshot for rewinding
> > the recorded execution to the specific moment of the time.
> > E.g., 'reverse step' action needs to load the nearest snapshot which is
> > prior to the current moment of time .
> >
> > Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
> [...]
> > diff --git a/migration/savevm.c b/migration/savevm.c
> > index 9e45fb4..a031e5b 100644
> > --- a/migration/savevm.c
> > +++ b/migration/savevm.c
> > @@ -2509,6 +2509,11 @@ int save_snapshot(const char *name, Error **errp)
> > sn->date_sec = tv.tv_sec;
> > sn->date_nsec = tv.tv_usec * 1000;
> > sn->vm_clock_nsec = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
> > + if (replay_mode != REPLAY_MODE_NONE) {
> > + sn->icount = replay_get_current_step();
> > + } else {
> > + sn->icount = -1ULL;
> > + }
> >
> > if (name) {
> > ret = bdrv_snapshot_find(bs, old_sn, name);
> > diff --git a/qapi/block-core.json b/qapi/block-core.json
> > index 762000f..7bb1727 100644
> > --- a/qapi/block-core.json
> > +++ b/qapi/block-core.json
> > @@ -26,13 +26,18 @@
> > #
> > # @vm-clock-nsec: fractional part in nano seconds to be used with vm-clock-sec
> > #
> > +# @icount: Current instruction count. Appears when execution record/replay
> > +# is enabled. Used for "time-traveling" to match the moment
> > +# in the recorded execution with the snapshots (since 4.0)
> > +#
> > # Since: 1.3
> > #
> > ##
> > { 'struct': 'SnapshotInfo',
> > 'data': { 'id': 'str', 'name': 'str', 'vm-state-size': 'int',
> > 'date-sec': 'int', 'date-nsec': 'int',
> > - 'vm-clock-sec': 'int', 'vm-clock-nsec': 'int' } }
> > + 'vm-clock-sec': 'int', 'vm-clock-nsec': 'int',
> > + '*icount': 'int' } }
> >
> > ##
> > # @ImageInfoSpecificQCow2EncryptionBase:
>
> As far as I can tell, @icount is the same as ReplayInfo's @step. But I
> had to look at the code to tell. Please name the two consistently.
> Also consider having the documentation refer to ReplayInfo.
Thanks for noticing, renamed everything to 'icount' to match with command line option.
Pavel Dovgalyuk
next prev parent reply other threads:[~2018-12-21 10:39 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 [this message]
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
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='003301d49919$6966bd80$3c343880$@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).