On 16/09/2016 09:55, Pavel Dovgalyuk wrote:
>> Since you have to create
>> overlay.qcow2 outside QEMU anyway, overlay.qcow2 might as well be the
>> "image".  That is, you could choose between:
>>    -drive driver=blkreplay,if=none,image=overlay.qcow2,id=img-blkreplay \
>>    -rr snapshot=replay_init,...
>>    -drive driver=blkreplay,if=none,image=img-direct,id=img-blkreplay
>> The temporary snapshot would be created if there's no "-rr snapshot" option
>> on the command line.
>> Does this make sense?
> There are two different parts:
>  - creating an overlay
>  - creating the snapshot
> Overlay is needed to preserve the state of the original backing file.
> In the current version temporary overlay is always created at start of qemu.

Yes, this would still be the default for rr mode.

> I don't think that it is convenient forcing user to create overlay manually.

Note that all I'm only saying that _only for the case where the user
creates the overlay manually anyway_ there is no need to specify both
image and overlay.  (I also don't like particularly the hard-coded
snapshot name replay_init, which can be overridden by -loadvm but not
when saving).

So there are various possibilites:

First proposal:

- automatically created overlay is -icount rr=record|replay (then
snapshot name doesn't matter, it can be replay_init)

- manually created overlay is -icount
rr=record|replay,rrsnapshot=snapname (then snapshot name matters because
you can have different snapshots in the same file)

If rr is enabled but rrsnapshot is absent, configure_icount can just set
"snapshot = 1" to force creation of the temporary overlay.  This
requires no change to the blkreplay driver

Second proposal:

- automatically created overlay is -icount rr=record|replay -snapshot

- manually created overlay is -icount rr=record|replay and an rrsnapshot
suboption can be added anyway if considered useful.

This requires no change to the blkreplay driver either.  It's a little
more verbose in the common case, but perhaps less surprising if you're
already used to -snapshot.

> Common debugging scenario includes multiple recording passes until the bug 
> manifests
> itself. Every new execution recorded should be accompanied by creating an 
> overlay
> to assure that the execution is started from the same disk state.
> Specifying initial snapshot name makes sense if we want to suppress -loadvm 
> option.

My rationale was to have similar command lines between record and replay
modes (just changing rr=record to rr=replay).


> Then replay may be started from any state without using -loadvm.
> Pavel Dovgalyuk

Reply via email to