This series try to tries to reduce VM's pause time while do checkpoint in COLO state.
Here, we use two methods to reduce the downtime during COLO stage: The first one is to reduce the time of backup PVM's memory into cache, Instread of doing this once time backup all PVM's memory when VM is stopped, we backup them during the live migration time. Secondly, we reduced the total number of dirty pages while do checkpoint with VM been paused, instead of sending all dirty pages while VM been pause, it sends part of dirty pages during the gap time of two checkpoints when SVM and PVM are running. V1 -> V2: - Fix tested problem found by Daniel Cho - Fix a degradation after rebase to master (first patch) Please review, thanks. Hailiang Zhang (8): migration: fix COLO broken caused by a previous commit migration/colo: wrap incoming checkpoint process into new helper savevm: Don't call colo_init_ram_cache twice COLO: Optimize memory back-up process ram/colo: only record bitmap of dirty pages in COLO stage migration: recognize COLO as part of activating process COLO: Migrate dirty pages during the gap of checkpointing migration/colo: Only flush ram cache while do checkpoint migration/colo.c | 337 +++++++++++++++++++++++++---------------- migration/migration.c | 7 +- migration/migration.h | 1 + migration/ram.c | 78 +++++++--- migration/ram.h | 2 + migration/trace-events | 1 + qapi/migration.json | 4 +- 7 files changed, 269 insertions(+), 161 deletions(-) -- 2.21.0