mirror of https://github.com/xemu-project/xemu.git
Migration: Split out ram part of qmp_query_migrate
The RAM section of qmp_query_migrate is reasonably complex and repeated 3 times. Split it out into a helper. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-id: 1465816605-29488-3-git-send-email-dgilbert@redhat.com Reviwed-by: Denis V. Lunev <den@openvz.org> Message-Id: <1465816605-29488-3-git-send-email-dgilbert@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com>
This commit is contained in:
parent
d688c62d09
commit
a22463a5dc
|
@ -602,6 +602,25 @@ static void get_xbzrle_cache_stats(MigrationInfo *info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void populate_ram_info(MigrationInfo *info, MigrationState *s)
|
||||||
|
{
|
||||||
|
info->has_ram = true;
|
||||||
|
info->ram = g_malloc0(sizeof(*info->ram));
|
||||||
|
info->ram->transferred = ram_bytes_transferred();
|
||||||
|
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->mbps = s->mbps;
|
||||||
|
info->ram->dirty_sync_count = s->dirty_sync_count;
|
||||||
|
|
||||||
|
if (s->state != MIGRATION_STATUS_COMPLETED) {
|
||||||
|
info->ram->remaining = ram_bytes_remaining();
|
||||||
|
info->ram->dirty_pages_rate = s->dirty_pages_rate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MigrationInfo *qmp_query_migrate(Error **errp)
|
MigrationInfo *qmp_query_migrate(Error **errp)
|
||||||
{
|
{
|
||||||
MigrationInfo *info = g_malloc0(sizeof(*info));
|
MigrationInfo *info = g_malloc0(sizeof(*info));
|
||||||
|
@ -626,18 +645,7 @@ MigrationInfo *qmp_query_migrate(Error **errp)
|
||||||
info->has_setup_time = true;
|
info->has_setup_time = true;
|
||||||
info->setup_time = s->setup_time;
|
info->setup_time = s->setup_time;
|
||||||
|
|
||||||
info->has_ram = true;
|
populate_ram_info(info, s);
|
||||||
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;
|
|
||||||
info->ram->dirty_sync_count = s->dirty_sync_count;
|
|
||||||
|
|
||||||
if (blk_mig_active()) {
|
if (blk_mig_active()) {
|
||||||
info->has_disk = true;
|
info->has_disk = true;
|
||||||
|
@ -665,18 +673,7 @@ MigrationInfo *qmp_query_migrate(Error **errp)
|
||||||
info->has_setup_time = true;
|
info->has_setup_time = true;
|
||||||
info->setup_time = s->setup_time;
|
info->setup_time = s->setup_time;
|
||||||
|
|
||||||
info->has_ram = true;
|
populate_ram_info(info, s);
|
||||||
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;
|
|
||||||
info->ram->dirty_sync_count = s->dirty_sync_count;
|
|
||||||
|
|
||||||
if (blk_mig_active()) {
|
if (blk_mig_active()) {
|
||||||
info->has_disk = true;
|
info->has_disk = true;
|
||||||
|
@ -699,17 +696,7 @@ MigrationInfo *qmp_query_migrate(Error **errp)
|
||||||
info->has_setup_time = true;
|
info->has_setup_time = true;
|
||||||
info->setup_time = s->setup_time;
|
info->setup_time = s->setup_time;
|
||||||
|
|
||||||
info->has_ram = true;
|
populate_ram_info(info, s);
|
||||||
info->ram = g_malloc0(sizeof(*info->ram));
|
|
||||||
info->ram->transferred = ram_bytes_transferred();
|
|
||||||
info->ram->remaining = 0;
|
|
||||||
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->mbps = s->mbps;
|
|
||||||
info->ram->dirty_sync_count = s->dirty_sync_count;
|
|
||||||
break;
|
break;
|
||||||
case MIGRATION_STATUS_FAILED:
|
case MIGRATION_STATUS_FAILED:
|
||||||
info->has_status = true;
|
info->has_status = true;
|
||||||
|
|
Loading…
Reference in New Issue