This patchset implements asynchronous deduplication in QCOW2 on top of the "QCOW2 deduplication metrics" patchset.
It's a work in progress posted so reviewers can see where the feature is heading. Benoît Canet (12): block: Add BlockDriver function prototype to pause and resume deduplication. qcow2: Add code to deduplicate cluster flagged with QCOW_OFLAG_TO_DEDUP. block: Add bdrv_has_dedup. block: Add bdrv_is_dedup_running. block: Add bdrv_resume_dedup. block: Add bdrv_pause_dedup. qcow2: Add qcow2_pause_dedup. qcow2: Add qcow2_resume_dedup. qcow2: Make dedup status persists. qerror: Add QERR_DEVICE_NOT_DEDUPLICATED. qmp: Add block-pause-dedup. qmp: Add block_resume_dedup. block.c | 72 ++++++++++++++++++++ block/qcow2-dedup.c | 166 +++++++++++++++++++++++++++++++++++++++++++++ block/qcow2.c | 8 ++- block/qcow2.h | 3 + blockdev.c | 36 ++++++++++ include/block/block.h | 4 ++ include/block/block_int.h | 4 ++ include/qapi/qmp/qerror.h | 3 + qapi-schema.json | 36 ++++++++++ qmp-commands.hx | 46 +++++++++++++ 10 files changed, 377 insertions(+), 1 deletion(-) -- 1.7.10.4