[PATCH V2 0/8] Optimize VM's downtime while do checkpoint in COLO

zhanghailiang posted 8 patches 5 years, 8 months ago
Test docker-quick@centos7 passed
Test FreeBSD passed
Test docker-mingw@fedora passed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200224065414.36524-1-zhang.zhanghailiang@huawei.com
Maintainers: Hailiang Zhang <zhang.zhanghailiang@huawei.com>, Markus Armbruster <armbru@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Juan Quintela <quintela@redhat.com>, Eric Blake <eblake@redhat.com>
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(-)
[PATCH V2 0/8] Optimize VM's downtime while do checkpoint in COLO
Posted by zhanghailiang 5 years, 8 months ago
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