[PATCH 26/32] qemu: Rewrite bitmap handling for block commit
Eric Blake
eblake at redhat.com
Thu Jun 18 23:56:15 UTC 2020
On 6/15/20 12:10 PM, Peter Krempa wrote:
> Reuse qemuBlockGetBitmapMergeActions which allows to remove the ad-hoc
s/allows to remove/allows the removal of/
> implementatio of bitmap merging for block commit. The new approach is
implementation
> way simpler and more robust and also allows us to get rid of the
> disabling of bitmaps done prior to the start as we actually do want to
> update the bitmaps in the base.
What if the commit fails, but we have merged in portions of the bitmap?
In practice, this merely means that a future attempt to use that bitmap
in the backing file will now copy more data than previously necessary;
what's more, if we try a commit again (if the failure was transient),
we'll be setting those same bits again. So yeah, I don't think it hurts
to not disable the bitmaps in the backing files.
>
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
> src/qemu/qemu_block.c | 203 +-----------------
> src/qemu/qemu_block.h | 11 +-
> src/qemu/qemu_blockjob.c | 25 ++-
> src/qemu/qemu_driver.c | 56 +----
> tests/qemublocktest.c | 18 +-
> .../qemublocktestdata/bitmapblockcommit/empty | 1 -
> 6 files changed, 42 insertions(+), 272 deletions(-)
>
> @@ -3332,95 +3222,20 @@ qemuBlockBitmapsHandleCommitFinishIterate(void *payload,
> int
> qemuBlockBitmapsHandleCommitFinish(virStorageSourcePtr topsrc,
> virStorageSourcePtr basesrc,
> + bool active,
> virHashTablePtr blockNamedNodeData,
> - virJSONValuePtr *actions,
> - char **disabledBitmapsBase)
> + virJSONValuePtr *actions)
> {
Reviewed-by: Eric Blake <eblake at redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
More information about the libvir-list
mailing list