[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v8 08/20] migration: introduce icount field for
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v8 08/20] migration: introduce icount field for snapshots |
Date: |
Wed, 19 Dec 2018 13:48:07 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Pavel Dovgalyuk <address@hidden> 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 <address@hidden>
[...]
> 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
> # }
> # }
> #
- [Qemu-devel] [PATCH v8 00/20] Fixing record/replay and adding reverse debugging, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 01/20] replay: add missing fix for internal function, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 02/20] block: implement bdrv_snapshot_goto for blkreplay, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 03/20] replay: disable default snapshot for record/replay, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 04/20] replay: update docs for record/replay with block devices, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 06/20] replay: finish record/replay before closing the disks, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 05/20] replay: don't drain/flush bdrv queue while RR is working, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 07/20] qcow2: introduce icount field for snapshots, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 08/20] migration: introduce icount field for snapshots, Pavel Dovgalyuk, 2018/12/18
- Re: [Qemu-devel] [PATCH v8 08/20] migration: introduce icount field for snapshots,
Markus Armbruster <=
- [Qemu-devel] [PATCH v8 09/20] replay: provide and accessor for rr filename, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 10/20] replay: introduce info hmp/qmp command, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 11/20] replay: introduce breakpoint at the specified step, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 12/20] replay: implement replay-seek command to proceed to the desired step, Pavel Dovgalyuk, 2018/12/18
- [Qemu-devel] [PATCH v8 13/20] replay: refine replay-time module, Pavel Dovgalyuk, 2018/12/18