This is the 20th version of COLO frame series. COLO Block replication and proxy (COLO compare) series are both been merged into upstream already. And further works can be done now to realize the full COLO feature.
Athough there are still no feedbacks from community for this part, But I would like to rebase this series to the recent upstream. Compared with last version, i dropped another five patches from this series, only keep the minimum patch sets to realize COLO checkpoint and failover process, just for easy understanding and review. The complete codes can be found from the link: https://github.com/coloft/qemu/commits/colo-v5.0-developing Cc: Juan Quintela <quint...@redhat.com> Cc: Amit Shah <amit.s...@redhat.com> Cc: Hai Huang <hhu...@redhat.com> Cc: Weidong Han <hanweid...@huawei.com> Cc: Dong eddie <eddie.d...@intel.com> Cc: Stefan Hajnoczi <stefa...@redhat.com> Cc: Jason Wang <jasow...@redhat.com> Cc: Dr. David Alan Gilbert (git) <dgilb...@redhat.com> Cc: Gui Jianfeng <guijianf...@cn.fujitsu.com> zhanghailiang (17): migration: Introduce capability 'x-colo' to migration COLO: migrate COLO related info to secondary node migration: Enter into COLO mode after migration if COLO is enabled migration: Switch to COLO process after finishing loadvm COLO: Establish a new communicating path for COLO COLO: Introduce checkpointing protocol COLO: Add a new RunState RUN_STATE_COLO COLO: Send PVM state to secondary side when do checkpoint COLO: Load VMState into QIOChannelBuffer before restore it COLO: Add checkpoint-delay parameter for migrate-set-parameters COLO: Synchronize PVM's state to SVM periodically COLO: Add 'x-colo-lost-heartbeat' command to trigger failover COLO: Introduce state to record failover process COLO: Implement the process of failover for primary VM COLO: Implement failover work for secondary VM docs: Add documentation for COLO feature configure: Support enable/disable COLO feature configure | 11 + docs/COLO-FT.txt | 190 +++++++++++++++ docs/qmp-commands.txt | 16 +- hmp-commands.hx | 15 ++ hmp.c | 15 ++ hmp.h | 1 + include/migration/colo.h | 38 +++ include/migration/failover.h | 26 +++ include/migration/migration.h | 8 + migration/Makefile.objs | 2 + migration/colo-comm.c | 72 ++++++ migration/colo-failover.c | 83 +++++++ migration/colo.c | 526 ++++++++++++++++++++++++++++++++++++++++++ migration/migration.c | 80 ++++++- migration/ram.c | 37 ++- migration/trace-events | 6 + qapi-schema.json | 104 ++++++++- stubs/Makefile.objs | 1 + stubs/migration-colo.c | 46 ++++ vl.c | 11 + 20 files changed, 1267 insertions(+), 21 deletions(-) create mode 100644 docs/COLO-FT.txt create mode 100644 include/migration/colo.h create mode 100644 include/migration/failover.h create mode 100644 migration/colo-comm.c create mode 100644 migration/colo-failover.c create mode 100644 migration/colo.c create mode 100644 stubs/migration-colo.c -- 1.8.3.1