These patches provide dirty bitmap migration feature. Only named dirty bitmaps are to be migrated. Migration is made as a part of block migration in block-migration.c.
Dirty bitmap migration may be enabled by "dirty" parameter for qmp migrate command. If "blk" and "inc" parameters are false when "dirty" is true block migration is actually skipped: no allocatoions, no bdrv_read's, no bdrv_write's, only bitmaps are migrated. The patch set includes two my previous bug fixes, which are necessary for it. The patch set is based on Incremental backup series by John Snow. Vladimir Sementsov-Ogievskiy (8): block-migration: fix pending() return value block: fix spoiling all dirty bitmaps by mirror and migration hbitmap: store / restore block: BdrvDirtyBitmap store/restore interface block-migration: tiny refactoring block-migration: remove not needed iothread lock migration: add dirty parameter block-migration: add named dirty bitmaps migration block-migration.c | 232 +++++++++++++++++++++++++++++++++--------- block.c | 76 +++++++++++++- block/mirror.c | 11 +- hmp-commands.hx | 10 +- hmp.c | 4 +- include/block/block.h | 16 ++- include/migration/migration.h | 1 + include/qemu/hbitmap.h | 49 +++++++++ migration.c | 4 +- qapi-schema.json | 2 +- qmp-commands.hx | 5 +- savevm.c | 4 +- util/hbitmap.c | 84 +++++++++++++++ 13 files changed, 434 insertions(+), 64 deletions(-) -- 1.9.1