"Dr. David Alan Gilbert (git)" <dgilb...@redhat.com> wrote: > From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> > > 'MIGRATION_STATUS_POSTCOPY_ACTIVE' is entered after migrate_start_postcopy > > 'migration_in_postcopy' is provided for other sections to know if > they're in postcopy. > > Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > Reviewed-by: David Gibson <da...@gibson.dropbear.id.au> > Reviewed-by: Eric Blake <ebl...@redhat.com> > Reviewed-by: Juan Quintela <quint...@redhat.com> > Reviewed-by: Amit Shah <amit.s...@redhat.com>
Just wondering > diff --git a/migration/migration.c b/migration/migration.c > index 5ee2c11..2ae5909 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -439,6 +439,7 @@ static bool migration_is_active(MigrationState *ms) > { > switch (ms->state) { > case MIGRATION_STATUS_ACTIVE: > + case MIGRATION_STATUS_POSTCOPY_ACTIVE: > case MIGRATION_STATUS_SETUP: > return true; > > @@ -509,6 +510,39 @@ MigrationInfo *qmp_query_migrate(Error **errp) > > get_xbzrle_cache_stats(info); > break; > + case MIGRATION_STATUS_POSTCOPY_ACTIVE: > + /* Mostly the same as active; TODO add some postcopy stats */ > + info->has_status = true; > + info->has_total_time = true; > + info->total_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) > + - s->total_time; > + info->has_expected_downtime = true; > + info->expected_downtime = s->expected_downtime; > + info->has_setup_time = true; > + info->setup_time = s->setup_time; > + > + info->has_ram = true; > + info->ram = g_malloc0(sizeof(*info->ram)); > + info->ram->transferred = ram_bytes_transferred(); > + info->ram->remaining = ram_bytes_remaining(); > + info->ram->total = ram_bytes_total(); > + info->ram->duplicate = dup_mig_pages_transferred(); > + info->ram->skipped = skipped_mig_pages_transferred(); > + info->ram->normal = norm_mig_pages_transferred(); > + info->ram->normal_bytes = norm_mig_bytes_transferred(); > + info->ram->dirty_pages_rate = s->dirty_pages_rate; > + info->ram->mbps = s->mbps; > + > + if (blk_mig_active()) { > + info->has_disk = true; > + info->disk = g_malloc0(sizeof(*info->disk)); > + info->disk->transferred = blk_mig_bytes_transferred(); > + info->disk->remaining = blk_mig_bytes_remaining(); > + info->disk->total = blk_mig_bytes_total(); > + } Are we sure that disk migration works with postcopy? I would expect no ...