> From: Markus Armbruster [mailto:arm...@redhat.com] > Pavel Dovgalyuk <pavel.dovga...@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.dovga...@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