On 02/17/2016 10:28 AM, Vladimir Sementsov-Ogievskiy wrote: > This series add persistent dirty bitmaps feature to qcow2. > Specification is in docs/spec/qcow2.txt (not merged yet, see > [PATCH v10] spec: add qcow2 bitmaps extension specification) > > This series are based on Fam's > [PATCH v2 00/13] Dirty bitmap changes for migration/persistence work > (meta bitmaps not used, and only hbitmap_deserialize_finish from > serialization) > > This also needs some preparation patches, most of them are in my > bitmap-migration series. I've not listed them here to keep things > simpler, this is RFC any way. > > v4: > > Previous version was posted more than five months ago, so I will not > carefully list all changes. > > What should be noted: > - some changes are made to sutisfy last version of specification > - removed staff, related to possibility of saving bitmaps for one > disk in the other qcow2. > - to make bitmap store/load zero-copy, I've moved load/store code to > HBitmap - this is new patch 01. > so, bdrv_dirty_bitmap_serialize_part and friends are not needed, > only hbitmap_deserialize_finish, to repair bitmap consistency after > loading its last level. > - two patches added about AUTO and EXTRA_DATA_COMPATIBLE flags > - some fixes made after John's comments on v3 > > Vladimir Sementsov-Ogievskiy (17): > hbitmap: load/store > qcow2: Bitmaps extension: structs and consts > qcow2-dirty-bitmap: read dirty bitmap directory > qcow2-dirty-bitmap: add qcow2_bitmap_load() > qcow2-dirty-bitmap: add qcow2_bitmap_store() > qcow2: add dirty bitmaps extension > qcow2-dirty-bitmap: add qcow2_bitmap_load_check() > block: store persistent dirty bitmaps > block: add bdrv_load_dirty_bitmap() > qcow2-dirty-bitmap: add autoclear bit > qemu: command line option for dirty bitmaps > qcow2-dirty-bitmap: add IN_USE flag > qcow2-dirty-bitmaps: disallow stroing bitmap to other bs > iotests: add VM.test_launcn() > iotests: test internal persistent dirty bitmap > qcow2-dirty-bitmap: add AUTO flag > qcow2-dirty-bitmap: add EXTRA_DATA_COMPATIBLE flag > > block.c | 3 + > block/Makefile.objs | 2 +- > block/dirty-bitmap.c | 101 +++++ > block/qcow2-dirty-bitmap.c | 839 > ++++++++++++++++++++++++++++++++++++++++++ > block/qcow2.c | 105 +++++- > block/qcow2.h | 59 +++ > blockdev.c | 36 ++ > include/block/block_int.h | 9 + > include/block/dirty-bitmap.h | 21 ++ > include/qemu/hbitmap.h | 12 + > include/sysemu/blockdev.h | 1 + > include/sysemu/sysemu.h | 1 + > qemu-options.hx | 35 ++ > tests/qemu-iotests/160 | 112 ++++++ > tests/qemu-iotests/160.out | 21 ++ > tests/qemu-iotests/group | 1 + > tests/qemu-iotests/iotests.py | 25 ++ > util/hbitmap.c | 182 +++++++++ > vl.c | 78 ++++ > 19 files changed, 1640 insertions(+), 3 deletions(-) > create mode 100644 block/qcow2-dirty-bitmap.c > create mode 100755 tests/qemu-iotests/160 > create mode 100644 tests/qemu-iotests/160.out >
In your prerequisite patches, "iotests-add-default-node-name" breaks qemu iotests 055 and 118. Didn't look hard enough to find out why, yet.