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(a)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(a)redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org