[PATCH 15/32] qemublocktest: Replace 'snapshots' bitmap detection test case data

Eric Blake eblake at redhat.com
Thu Jun 18 14:58:35 UTC 2020


On 6/15/20 12:10 PM, Peter Krempa wrote:
> Use test data which conforms to the new semantics which changed in the
> previous patch.

Well, a recent patch (the previous patch only touched tests, rather than 
changing semantics)

> 
> The test data was created by the same set of commands as originally in
> commit 0b27b655b1bac480186ce80457113cd5dc34e6a1
> 
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
>   tests/qemublocktestdata/bitmap/snapshots.json | 1382 +++++++----------
>   tests/qemublocktestdata/bitmap/snapshots.out  |   13 +-
>   2 files changed, 588 insertions(+), 807 deletions(-)

> +++ b/tests/qemublocktestdata/bitmap/snapshots.out
> @@ -1,12 +1,17 @@
>   libvirt-1-format:
> -        d: record:0 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
> +        d: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
> +        a: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
> +        b: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
> +        c: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0
>     current: record:1 busy:0 persist:1 inconsist:0 gran:65536 dirty:0

So, where the old paradigm stitched bitmaps across snapshots (no need to 
add a bitmap to a new snapshot layer if it was already inactive in the 
old layer), the new paradigm says that every reachable checkpoint must 
have an active bitmap in the current layer, in addition to whatever 
bitmaps it had in earlier layers.

Presumably, upcoming patches will tweak libvirt to actually create these 
bitmaps as part of creating an external snapshot, and I also see how you 
could utilize qemu adding block-dirty-bitmap-populate as a convenient 
way for re-creating such bitmaps after the fact (any bitmap that exists 
in the backing chain should basically mirror the allocation of the 
current layer in the chain).

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