int qmp_marshal_input_query_migrate(Monitor *mon, const QDict *qdict, QObject **ret) { Error *local_err = NULL; Error **errp = &local_err; QDict *args = (QDict *)qdict; MigrationInfo * retval = NULL; (void)args; if (error_is_set(errp)) { goto out; } retval = qmp_query_migrate(errp); if (!error_is_set(errp)) { qmp_marshal_output_query_migrate(retval, ret, errp); } out: if (local_err) { qerror_report_err(local_err); error_free(local_err); return -1; } return 0; }
void hmp_info_migrate(Monitor *mon, const QDict *qdict) { MigrationInfo *info; MigrationCapabilityStatusList *caps, *cap; info = qmp_query_migrate(NULL); caps = qmp_query_migrate_capabilities(NULL); /* do not display parameters during setup */ if (info->has_status && caps) { monitor_printf(mon, "capabilities: "); for (cap = caps; cap; cap = cap->next) { monitor_printf(mon, "%s: %s ", MigrationCapability_lookup[cap->value->capability], cap->value->state ? "on" : "off"); } monitor_printf(mon, "\n"); } if (info->has_status) { monitor_printf(mon, "Migration status: %s\n", info->status); monitor_printf(mon, "total time: %" PRIu64 " milliseconds\n", info->total_time); if (info->has_expected_downtime) { monitor_printf(mon, "expected downtime: %" PRIu64 " milliseconds\n", info->expected_downtime); } if (info->has_downtime) { monitor_printf(mon, "downtime: %" PRIu64 " milliseconds\n", info->downtime); } if (info->has_setup_time) { monitor_printf(mon, "setup: %" PRIu64 " milliseconds\n", info->setup_time); } } if (info->has_ram) { monitor_printf(mon, "transferred ram: %" PRIu64 " kbytes\n", info->ram->transferred >> 10); monitor_printf(mon, "throughput: %0.2f mbps\n", info->ram->mbps); monitor_printf(mon, "remaining ram: %" PRIu64 " kbytes\n", info->ram->remaining >> 10); monitor_printf(mon, "total ram: %" PRIu64 " kbytes\n", info->ram->total >> 10); monitor_printf(mon, "duplicate: %" PRIu64 " pages\n", info->ram->duplicate); monitor_printf(mon, "skipped: %" PRIu64 " pages\n", info->ram->skipped); monitor_printf(mon, "normal: %" PRIu64 " pages\n", info->ram->normal); monitor_printf(mon, "normal bytes: %" PRIu64 " kbytes\n", info->ram->normal_bytes >> 10); if (info->ram->dirty_pages_rate) { monitor_printf(mon, "dirty pages rate: %" PRIu64 " pages\n", info->ram->dirty_pages_rate); } }
void hmp_info_migrate(Monitor *mon) { MigrationInfo *info; info = qmp_query_migrate(NULL); if (info->has_status) { monitor_printf(mon, "Migration status: %s\n", info->status); } if (info->has_ram) { monitor_printf(mon, "transferred ram: %" PRIu64 " kbytes\n", info->ram->transferred >> 10); monitor_printf(mon, "remaining ram: %" PRIu64 " kbytes\n", info->ram->remaining >> 10); monitor_printf(mon, "total ram: %" PRIu64 " kbytes\n", info->ram->total >> 10); }