This series of patches reduce the down time of the guest during a migration without shared storage. It does that by start transfer dirty blocks in the iterative phase. In the current code transferring of dirty blocks begins only during the full phase while the guest is suspended. Therefore the guest will be suspended linear to the amount of data that was written to disk during migration.
Changes from v2: - don't duplicate code by using qemu_get_clock_ns() use Paolo Bonzini <pbonz...@redhat.com> patch. - Coding style issues - Remove unused constants Changes from v1: - infer storage performance by get_clock() - remove dirty max iterations, user is responsible for migration convergence - remove trailing whitespaces - minor cleanups block-migration.c | 235 +++++++++++++++++++++++++++++++++++++--------------- block.c | 16 +++- block.h | 1 + block_int.h | 1 + qemu-timer.h | 1 + vl.c | 21 +++++- 6 files changed, 203 insertions(+), 72 deletions(-) Signed-off-by: Liran Schour <lir...@il.ibm.com>