On 16/09/2016 11:36, Pavel Dovgalyuk wrote:
>> From: Paolo Bonzini [mailto:paolo.bonz...@gmail.com] On Behalf Of Paolo
>> 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).
> Ok, this seems reasonable to fix.
>> 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)
> We can't create overlay with icount suboptions, because there could be several
> block devices. Each one needs its own overlay.
Right, so the overlay name is specified in each -drive option the
blkreplay image. rrsnapshot is just the name of the first snapshot that
is created (for rr=record, instead of requiring manual interaction with
the monitor) or loaded (for rr=replay; in this case it's a convenience