On Tue, Jun 09, 2020 at 17:00:07 +0200, Peter Krempa wrote:
Use 'block-dirty-bitmap-populate' and change how we create
bitmaps
corresponding to checkpoints to simplify the code and also properly
integrate with backing chain images created outside of libvirt.
This patchset changes how we approach checkpoints by keeping one bitmap
per checkpoint and disk and not propagating the bitmaps into overlays on
snapshots. This massively simplifies the code handling all the
operations during blockjobs and backups.
While the change isn't compatible with checkpoints created previously,
we didn't yet enable the support for checkpoints/backups.
Note that 'block-dirty-bitmap-populate' is _not_ in finished state in
qemu yet, so I'm posting this as RFC and as reference for qemu
developers of the usefulnes of it.
The changes can be fetched by:
git fetch
https://gitlab.com/pipo.sk/libvirt.git checkpoint-bitmap-populate
Note that the above branch also contains a commit enabling incremental
backup for simpler testing.
I've pushed the appropriate qemu patches for convenience here:
git fetch
https://gitlab.com/pipo.sk/qemu.git block-dirty-bitmap-populate
I'll be posting a new version which doesn't require the
'block-dirty-bitmap-populate' blockjob at the beginning but still
simplifies the internals and I'll then base the rest of this series on
top of that once the qemu design is ready.