I'll try to rebase my series on this and run tests. On 20.01.2016 09:11, Fam Zheng wrote:
v2: Various changes addressing John's and Vladimir's comments:[02/13] typedefs: Add BdrvDirtyBitmap Skip HBitmapIter because we'll hide it soon. [John][03/13] block: Move block dirty bitmap code to separate files[04/13] block: Remove unused typedef of BlockDriverDirtyHandler [05/13] block: Hide HBitmap in block dirty bitmap interface Add assert in bdrv_dirty_bitmap_truncate(). [John] Add John's rev-by. [06/13] HBitmap: Introduce "meta" bitmap to track bit changes Caller of hbitmap_create_meta() frees it with hbitmap_free_meta(). [John, Vladimir] [07/13] tests: Add test code for meta bitmap Add John's rev-by. [08/13] block: Support meta dirty bitmap Release the meta dirty bitmap in bdrv_release_dirty_bitmap(). [09/13] block: Add two dirty bitmap getters [10/13] block: Assert that bdrv_release_dirty_bitmap succeeded Add John's rev-by. [11/13] hbitmap: serialization Fix comment for hbitmap_serialization_granularity() and hbitmap_deserialize_part(). [John] Document @finish in hbitmap_deserialize_zeroes more clearly. Fixed granularity in hbitmap_serialization_granularity(). [Vladimir] Tweak the assertion in serialization_chunk. [Vladimir] cpu_to_leXXs -> leXX_to_cpus in hbitmap_deserialize_part. [Vladimir] Fix typo in serialization_chunk() comments. [John] [12/13] block: BdrvDirtyBitmap serialization interface [13/13] tests: Add test code for hbitmap serialization Two major features are added to block dirty bitmap (and underlying HBitmap) in this series: meta bitmap and serialization, together with all other supportive patches. Both operations are common in dirty bitmap migration and persistence: they need to find whether and which part of the dirty bitmap in question has changed with meta dirty bitmap, and they need to write it to the target with serialization. Fam Zheng (11): backup: Use Bitmap to replace "s->bitmap" typedefs: Add BdrvDirtyBitmap block: Move block dirty bitmap code to separate files block: Remove unused typedef of BlockDriverDirtyHandler block: Hide HBitmap in block dirty bitmap interface HBitmap: Introduce "meta" bitmap to track bit changes tests: Add test code for meta bitmap block: Support meta dirty bitmap block: Add two dirty bitmap getters block: Assert that bdrv_release_dirty_bitmap succeeded tests: Add test code for hbitmap serialization Vladimir Sementsov-Ogievskiy (2): hbitmap: serialization block: BdrvDirtyBitmap serialization interface block.c | 339 ----------------------------- block/Makefile.objs | 2 +- block/backup.c | 25 ++- block/dirty-bitmap.c | 492 +++++++++++++++++++++++++++++++++++++++++++ block/mirror.c | 14 +- include/block/block.h | 40 +--- include/block/dirty-bitmap.h | 71 +++++++ include/qemu/hbitmap.h | 95 +++++++++ include/qemu/typedefs.h | 2 + tests/test-hbitmap.c | 255 ++++++++++++++++++++++ util/hbitmap.c | 201 ++++++++++++++++-- 11 files changed, 1126 insertions(+), 410 deletions(-) create mode 100644 block/dirty-bitmap.c create mode 100644 include/block/dirty-bitmap.h
-- Best regards, Vladimir * now, @virtuozzo.com instead of @parallels.com. Sorry for this inconvenience.
