mirror of https://github.com/xqemu/xqemu.git
Merge remote-tracking branch 'qmp/queue/qmp' into staging
* qmp/queue/qmp: migration: move total_time from ram stats to migration info monitor: avoid declaring unused variables qapi: Fix memory leak
This commit is contained in:
commit
86759aa89d
4
hmp.c
4
hmp.c
|
@ -149,6 +149,8 @@ void hmp_info_migrate(Monitor *mon)
|
||||||
|
|
||||||
if (info->has_status) {
|
if (info->has_status) {
|
||||||
monitor_printf(mon, "Migration status: %s\n", info->status);
|
monitor_printf(mon, "Migration status: %s\n", info->status);
|
||||||
|
monitor_printf(mon, "total time: %" PRIu64 " milliseconds\n",
|
||||||
|
info->total_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info->has_ram) {
|
if (info->has_ram) {
|
||||||
|
@ -158,8 +160,6 @@ void hmp_info_migrate(Monitor *mon)
|
||||||
info->ram->remaining >> 10);
|
info->ram->remaining >> 10);
|
||||||
monitor_printf(mon, "total ram: %" PRIu64 " kbytes\n",
|
monitor_printf(mon, "total ram: %" PRIu64 " kbytes\n",
|
||||||
info->ram->total >> 10);
|
info->ram->total >> 10);
|
||||||
monitor_printf(mon, "total time: %" PRIu64 " milliseconds\n",
|
|
||||||
info->ram->total_time);
|
|
||||||
monitor_printf(mon, "duplicate: %" PRIu64 " pages\n",
|
monitor_printf(mon, "duplicate: %" PRIu64 " pages\n",
|
||||||
info->ram->duplicate);
|
info->ram->duplicate);
|
||||||
monitor_printf(mon, "normal: %" PRIu64 " pages\n",
|
monitor_printf(mon, "normal: %" PRIu64 " pages\n",
|
||||||
|
|
|
@ -166,14 +166,15 @@ MigrationInfo *qmp_query_migrate(Error **errp)
|
||||||
case MIG_STATE_ACTIVE:
|
case MIG_STATE_ACTIVE:
|
||||||
info->has_status = true;
|
info->has_status = true;
|
||||||
info->status = g_strdup("active");
|
info->status = g_strdup("active");
|
||||||
|
info->has_total_time = true;
|
||||||
|
info->total_time = qemu_get_clock_ms(rt_clock)
|
||||||
|
- s->total_time;
|
||||||
|
|
||||||
info->has_ram = true;
|
info->has_ram = true;
|
||||||
info->ram = g_malloc0(sizeof(*info->ram));
|
info->ram = g_malloc0(sizeof(*info->ram));
|
||||||
info->ram->transferred = ram_bytes_transferred();
|
info->ram->transferred = ram_bytes_transferred();
|
||||||
info->ram->remaining = ram_bytes_remaining();
|
info->ram->remaining = ram_bytes_remaining();
|
||||||
info->ram->total = ram_bytes_total();
|
info->ram->total = ram_bytes_total();
|
||||||
info->ram->total_time = qemu_get_clock_ms(rt_clock)
|
|
||||||
- s->total_time;
|
|
||||||
info->ram->duplicate = dup_mig_pages_transferred();
|
info->ram->duplicate = dup_mig_pages_transferred();
|
||||||
info->ram->normal = norm_mig_pages_transferred();
|
info->ram->normal = norm_mig_pages_transferred();
|
||||||
info->ram->normal_bytes = norm_mig_bytes_transferred();
|
info->ram->normal_bytes = norm_mig_bytes_transferred();
|
||||||
|
@ -193,13 +194,13 @@ MigrationInfo *qmp_query_migrate(Error **errp)
|
||||||
|
|
||||||
info->has_status = true;
|
info->has_status = true;
|
||||||
info->status = g_strdup("completed");
|
info->status = g_strdup("completed");
|
||||||
|
info->total_time = s->total_time;
|
||||||
|
|
||||||
info->has_ram = true;
|
info->has_ram = true;
|
||||||
info->ram = g_malloc0(sizeof(*info->ram));
|
info->ram = g_malloc0(sizeof(*info->ram));
|
||||||
info->ram->transferred = ram_bytes_transferred();
|
info->ram->transferred = ram_bytes_transferred();
|
||||||
info->ram->remaining = 0;
|
info->ram->remaining = 0;
|
||||||
info->ram->total = ram_bytes_total();
|
info->ram->total = ram_bytes_total();
|
||||||
info->ram->total_time = s->total_time;
|
|
||||||
info->ram->duplicate = dup_mig_pages_transferred();
|
info->ram->duplicate = dup_mig_pages_transferred();
|
||||||
info->ram->normal = norm_mig_pages_transferred();
|
info->ram->normal = norm_mig_pages_transferred();
|
||||||
info->ram->normal_bytes = norm_mig_bytes_transferred();
|
info->ram->normal_bytes = norm_mig_bytes_transferred();
|
||||||
|
|
|
@ -2570,11 +2570,11 @@ FdsetInfoList *qmp_query_fdsets(Error **errp)
|
||||||
|
|
||||||
int monitor_fdset_get_fd(int64_t fdset_id, int flags)
|
int monitor_fdset_get_fd(int64_t fdset_id, int flags)
|
||||||
{
|
{
|
||||||
|
#ifndef _WIN32
|
||||||
MonFdset *mon_fdset;
|
MonFdset *mon_fdset;
|
||||||
MonFdsetFd *mon_fdset_fd;
|
MonFdsetFd *mon_fdset_fd;
|
||||||
int mon_fd_flags;
|
int mon_fd_flags;
|
||||||
|
|
||||||
#ifndef _WIN32
|
|
||||||
QLIST_FOREACH(mon_fdset, &mon_fdsets, next) {
|
QLIST_FOREACH(mon_fdset, &mon_fdsets, next) {
|
||||||
if (mon_fdset->id != fdset_id) {
|
if (mon_fdset->id != fdset_id) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -290,10 +290,6 @@
|
||||||
#
|
#
|
||||||
# @total: total amount of bytes involved in the migration process
|
# @total: total amount of bytes involved in the migration process
|
||||||
#
|
#
|
||||||
# @total-time: total amount of ms since migration started. If
|
|
||||||
# migration has ended, it returns the total migration
|
|
||||||
# time. (since 1.2)
|
|
||||||
#
|
|
||||||
# @duplicate: number of duplicate pages (since 1.2)
|
# @duplicate: number of duplicate pages (since 1.2)
|
||||||
#
|
#
|
||||||
# @normal : number of normal pages (since 1.2)
|
# @normal : number of normal pages (since 1.2)
|
||||||
|
@ -304,8 +300,7 @@
|
||||||
##
|
##
|
||||||
{ 'type': 'MigrationStats',
|
{ 'type': 'MigrationStats',
|
||||||
'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' ,
|
'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' ,
|
||||||
'total-time': 'int', 'duplicate': 'int', 'normal': 'int',
|
'duplicate': 'int', 'normal': 'int', 'normal-bytes': 'int' } }
|
||||||
'normal-bytes': 'int' } }
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# @XBZRLECacheStats
|
# @XBZRLECacheStats
|
||||||
|
@ -350,12 +345,17 @@
|
||||||
# migration statistics, only returned if XBZRLE feature is on and
|
# migration statistics, only returned if XBZRLE feature is on and
|
||||||
# status is 'active' or 'completed' (since 1.2)
|
# status is 'active' or 'completed' (since 1.2)
|
||||||
#
|
#
|
||||||
|
# @total-time: #optional total amount of milliseconds since migration started.
|
||||||
|
# If migration has ended, it returns the total migration
|
||||||
|
# time. (since 1.2)
|
||||||
|
#
|
||||||
# Since: 0.14.0
|
# Since: 0.14.0
|
||||||
##
|
##
|
||||||
{ 'type': 'MigrationInfo',
|
{ 'type': 'MigrationInfo',
|
||||||
'data': {'*status': 'str', '*ram': 'MigrationStats',
|
'data': {'*status': 'str', '*ram': 'MigrationStats',
|
||||||
'*disk': 'MigrationStats',
|
'*disk': 'MigrationStats',
|
||||||
'*xbzrle-cache': 'XBZRLECacheStats'} }
|
'*xbzrle-cache': 'XBZRLECacheStats',
|
||||||
|
'*total-time': 'int'} }
|
||||||
|
|
||||||
##
|
##
|
||||||
# @query-migrate
|
# @query-migrate
|
||||||
|
|
|
@ -416,7 +416,7 @@ opts_visitor_cleanup(OptsVisitor *ov)
|
||||||
g_hash_table_destroy(ov->unprocessed_opts);
|
g_hash_table_destroy(ov->unprocessed_opts);
|
||||||
}
|
}
|
||||||
g_free(ov->fake_id_opt);
|
g_free(ov->fake_id_opt);
|
||||||
memset(ov, '\0', sizeof *ov);
|
g_free(ov);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2239,14 +2239,14 @@ The main json-object contains the following:
|
||||||
|
|
||||||
- "status": migration status (json-string)
|
- "status": migration status (json-string)
|
||||||
- Possible values: "active", "completed", "failed", "cancelled"
|
- Possible values: "active", "completed", "failed", "cancelled"
|
||||||
|
- "total-time": total amount of ms since migration started. If
|
||||||
|
migration has ended, it returns the total migration
|
||||||
|
time (json-int)
|
||||||
- "ram": only present if "status" is "active", it is a json-object with the
|
- "ram": only present if "status" is "active", it is a json-object with the
|
||||||
following RAM information (in bytes):
|
following RAM information (in bytes):
|
||||||
- "transferred": amount transferred (json-int)
|
- "transferred": amount transferred (json-int)
|
||||||
- "remaining": amount remaining (json-int)
|
- "remaining": amount remaining (json-int)
|
||||||
- "total": total (json-int)
|
- "total": total (json-int)
|
||||||
- "total-time": total amount of ms since migration started. If
|
|
||||||
migration has ended, it returns the total migration time
|
|
||||||
(json-int)
|
|
||||||
- "duplicate": number of duplicated pages (json-int)
|
- "duplicate": number of duplicated pages (json-int)
|
||||||
- "normal" : number of normal pages transferred (json-int)
|
- "normal" : number of normal pages transferred (json-int)
|
||||||
- "normal-bytes" : number of normal bytes transferred (json-int)
|
- "normal-bytes" : number of normal bytes transferred (json-int)
|
||||||
|
|
Loading…
Reference in New Issue