summary refs log tree commit diff stats
path: root/migration/colo.c
diff options
context:
space:
mode:
authorZhang Chen <zhangckid@gmail.com>2018-09-03 12:38:47 +0800
committerJason Wang <jasowang@redhat.com>2018-10-19 11:15:03 +0800
commitaad555c2294b5de22524b7dbacc728d51cc63bcc (patch)
tree2f83c8e78d6866ec5ae7a6f5c80225d0b9751f67 /migration/colo.c
parent8e48ac95865ac97d10a81cb7a5bbae310878f519 (diff)
downloadfocaccia-qemu-aad555c2294b5de22524b7dbacc728d51cc63bcc.tar.gz
focaccia-qemu-aad555c2294b5de22524b7dbacc728d51cc63bcc.zip
COLO: Remove colo_state migration struct
We need to know if migration is going into COLO state for
incoming side before start normal migration.

Instead by using the VMStateDescription to send colo_state
from source side to destination side, we use MIG_CMD_ENABLE_COLO
to indicate whether COLO is enabled or not.

Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
Signed-off-by: Zhang Chen <zhangckid@gmail.com>
Signed-off-by: Zhang Chen <chen.zhang@intel.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'migration/colo.c')
-rw-r--r--migration/colo.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/migration/colo.c b/migration/colo.c
index af04010061..d3163b51c8 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -152,6 +152,17 @@ static void primary_vm_do_failover(void)
     qemu_sem_post(&s->colo_exit_sem);
 }
 
+COLOMode get_colo_mode(void)
+{
+    if (migration_in_colo_state()) {
+        return COLO_MODE_PRIMARY;
+    } else if (migration_incoming_in_colo_state()) {
+        return COLO_MODE_SECONDARY;
+    } else {
+        return COLO_MODE_UNKNOWN;
+    }
+}
+
 void colo_do_failover(MigrationState *s)
 {
     /* Make sure VM stopped while failover happened. */
@@ -746,7 +757,7 @@ out:
     if (mis->to_src_file) {
         qemu_fclose(mis->to_src_file);
     }
-    migration_incoming_exit_colo();
+    migration_incoming_disable_colo();
 
     rcu_unregister_thread();
     return NULL;