From: Markus Armbruster <armbru@redhat.com>
To: 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,
dovgaluk@ispras.ru, 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: Wed, 19 Dec 2018 13:48:07 +0100 [thread overview]
Message-ID: <87tvj9isxk.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20181218112142.11727.24919.stgit@pasha-VirtualBox> (Pavel Dovgalyuk's message of "Tue, 18 Dec 2018 14:21:42 +0300")
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.
> diff --git a/qapi/block.json b/qapi/block.json
> index 11f01f2..a6396a9 100644
> --- a/qapi/block.json
> +++ b/qapi/block.json
> @@ -176,7 +176,8 @@
> # "date-sec": 1000012,
> # "date-nsec": 10,
> # "vm-clock-sec": 100,
> -# "vm-clock-nsec": 20
> +# "vm-clock-nsec": 20,
> +# "icount": 220414
> # }
> # }
> #
next prev parent reply other threads:[~2018-12-19 12:48 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 [this message]
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
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=87tvj9isxk.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=Pavel.Dovgaluk@ispras.ru \
--cc=alex.bennee@linaro.org \
--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=dovgaluk@ispras.ru \
--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 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.