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 and HBitmapIter 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 | 491 +++++++++++++++++++++++++++++++++++++++++++ block/mirror.c | 14 +- include/block/block.h | 39 +--- include/block/dirty-bitmap.h | 70 ++++++ include/qemu/hbitmap.h | 84 ++++++++ include/qemu/typedefs.h | 3 + tests/test-hbitmap.c | 252 ++++++++++++++++++++++ util/hbitmap.c | 197 +++++++++++++++-- 11 files changed, 1106 insertions(+), 410 deletions(-) create mode 100644 block/dirty-bitmap.c create mode 100644 include/block/dirty-bitmap.h -- 2.4.3