v4: Rebase. Add rev-by from John in patches 1-5, 7, 8. Remove BdrvDirtyBitmap typedef from dirty-bitmap.h in patch 4. [Max] Add assertion on bm->meta in patch 9. [John]
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 (13): backup: Use Bitmap to replace "s->bitmap" block: Include hbitmap.h in block.h 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 block: More operations for meta dirty bitmap Vladimir Sementsov-Ogievskiy (2): hbitmap: serialization block: BdrvDirtyBitmap serialization interface block.c | 360 ----------------------------- block/Makefile.objs | 2 +- block/backup.c | 25 +- block/dirty-bitmap.c | 535 +++++++++++++++++++++++++++++++++++++++++++ block/mirror.c | 15 +- include/block/block.h | 40 +--- include/block/dirty-bitmap.h | 75 ++++++ include/qemu/hbitmap.h | 96 ++++++++ include/qemu/typedefs.h | 2 + tests/test-hbitmap.c | 255 +++++++++++++++++++++ util/hbitmap.c | 203 ++++++++++++++-- 11 files changed, 1177 insertions(+), 431 deletions(-) create mode 100644 block/dirty-bitmap.c create mode 100644 include/block/dirty-bitmap.h -- 2.4.3