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 <[email protected]>
> Signed-off-by: Li Zhijian <[email protected]>
> Signed-off-by: Gonglei <[email protected]>
> Reviewed-by: Dr. David Alan Gilbert <[email protected]>
(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