On (Tue) 18 Oct 2016 [20:09:59], zhanghailiang wrote: > Add a new migration state: MIGRATION_STATUS_COLO. Migration source side > enters this state after the first live migration successfully finished > if COLO is enabled by command 'migrate_set_capability x-colo on'. > > We reuse migration thread, so the process of checkpointing will be handled > in migration thread. > > Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com> > Signed-off-by: Li Zhijian <lizhij...@cn.fujitsu.com> > Signed-off-by: Gonglei <arei.gong...@huawei.com> > Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com>
(snip) > +static void colo_process_checkpoint(MigrationState *s) > +{ > + qemu_mutex_lock_iothread(); > + vm_start(); > + qemu_mutex_unlock_iothread(); > + trace_colo_vm_state_change("stop", "run"); > + > + /* TODO: COLO checkpoint savevm loop */ > + > + migrate_set_state(&s->state, MIGRATION_STATUS_COLO, > + MIGRATION_STATUS_COMPLETED); Is this just a temporary thing that'll be removed in the next patches? I guess so - because once you enter COLO state, you want to remain in it, right? I think the commit message implies that. So the commit msg and the code are not in sync. (snip) > diff --git a/migration/migration.c b/migration/migration.c > index f7dd9c6..462007d 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -695,6 +695,10 @@ MigrationInfo *qmp_query_migrate(Error **errp) > > get_xbzrle_cache_stats(info); > break; > + case MIGRATION_STATUS_COLO: > + info->has_status = true; > + /* TODO: display COLO specific information (checkpoint info etc.) */ > + break; When do you plan to add this? I guess it's important for debugging and also to get the state of the system while colo is active. What info do you have planned to display here? Amit