mirror of
https://github.com/xemu-project/xemu.git
synced 2025-01-08 04:31:16 +00:00
Combo Migration/HMP/virtiofs pull
Small fixes all around. Ones that are noticeable: a) Igor's migration compatibility fix affecting older machine types has been seen in the wild b) Philippe's autconverge fix should fix an intermittently failing migration test. c) Mao's makes a small change to the output of 'info migrate_parameters' for tls-authz. -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEERfXHG0oMt/uXep+pBRYzHrxb/ecFAl57WUgACgkQBRYzHrxb /eczDA/8CUuiVSZoCoWKMVK35SuG4qUDLIPN6HlJW9di4hseGpwZZkiaWwlFl5Rt zAeUxOT88rhl7G2SR1+a41TpByWoQU1+WeOfHMJLOy+AqSxW5Zy1xoXqMlsYalGc XE6SU8iqFqqVGleqdVuWOTQtpf6C0aPWG4X/RPMcQUBGaAwiSjfswTPDxBHiW0D2 4feNsDTESOLNt5cSqQYVYGotEIgREI6FcRAW19xNlgA2XYgWDZ8eAg5kPSE2W4Zp ieZ37xoMZU0zCwq+QhBcC6T1p6azbFL0l+DCSXxmQU2EwyrE8XcNdwQ9PcJyjz+z RCLyBWTy2VdnLMCto163yxBrjrsSxXbKX1oIjvBsxrp7/j5tO0tMeeestYARSfp6 IqFqnEMVWe5lc0UUVe+lgiIEFIDK/fy5QCbTUWtIuSpVGH/lzfPJVIojmxCqJjnB uoRrRt4Is36p329Pq7kAe8jUMNfHDwlwhwIew27rlvlU+zS4Qhxq0zQ2wbigW6al GseH0bGCgsoW7oDqUm2xWwQII3Zj/W/o0/8WKLf0T6Fh1T/rsLwq+HtJKQJufHMb 3qrEYJACS3VYapWcB7D8AazLWxtznjNrhHKCqAgt03gWpzr6I8E8FRuYbp7Xqd36 VhDjnOv9a9peroR5CWVxSuuedX3217edGKpIkN9eviMnYcedIZU= =AaVo -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/dgilbert/tags/pull-migration-20200325b' into staging Combo Migration/HMP/virtiofs pull Small fixes all around. Ones that are noticeable: a) Igor's migration compatibility fix affecting older machine types has been seen in the wild b) Philippe's autconverge fix should fix an intermittently failing migration test. c) Mao's makes a small change to the output of 'info migrate_parameters' for tls-authz. # gpg: Signature made Wed 25 Mar 2020 13:14:48 GMT # gpg: using RSA key 45F5C71B4A0CB7FB977A9FA90516331EBC5BFDE7 # gpg: Good signature from "Dr. David Alan Gilbert (RH2) <dgilbert@redhat.com>" [full] # Primary key fingerprint: 45F5 C71B 4A0C B7FB 977A 9FA9 0516 331E BC5B FDE7 * remotes/dgilbert/tags/pull-migration-20200325b: migration: use "" instead of (null) for tls-authz migration/ram: fix use after free of local_err migration/colo: fix use after free of local_err vl.c: fix migration failure for 3.1 and older machine types tools/virtiofsd/passthrough_ll: Fix double close() hmp/vnc: Fix info vnc list leak tests/migration: Reduce autoconverge initial bandwidth xbzrle: update xbzrle doc hmp-cmd: fix a missing_break warning Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
01e38186ec
@ -92,6 +92,11 @@ Usage
|
||||
power of 2. The cache default value is 64MBytes. (on source only)
|
||||
{qemu} migrate_set_cache_size 256m
|
||||
|
||||
Commit 73af8dd8d7 "migration: Make xbzrle_cache_size a migration parameter"
|
||||
(v2.11.0) deprecated migrate-set-cache-size, therefore, the new parameter
|
||||
is recommended.
|
||||
{qemu} migrate_set_parameter xbzrle-cache-size 256m
|
||||
|
||||
4. Start outgoing migration
|
||||
{qemu} migrate -d tcp:destination.host:4444
|
||||
{qemu} info migrate
|
||||
@ -108,7 +113,7 @@ power of 2. The cache default value is 64MBytes. (on source only)
|
||||
xbzrle transferred: I kbytes
|
||||
xbzrle pages: J pages
|
||||
xbzrle cache miss: K
|
||||
xbzrle overflow : L
|
||||
xbzrle overflow: L
|
||||
|
||||
xbzrle cache-miss: the number of cache misses to date - high cache-miss rate
|
||||
indicates that the cache size is set too low.
|
||||
|
@ -93,6 +93,7 @@ static void secondary_vm_do_failover(void)
|
||||
replication_stop_all(true, &local_err);
|
||||
if (local_err) {
|
||||
error_report_err(local_err);
|
||||
local_err = NULL;
|
||||
}
|
||||
|
||||
/* Notify all filters of all NIC to do checkpoint */
|
||||
|
@ -790,7 +790,8 @@ MigrationParameters *qmp_query_migrate_parameters(Error **errp)
|
||||
params->has_tls_hostname = true;
|
||||
params->tls_hostname = g_strdup(s->parameters.tls_hostname);
|
||||
params->has_tls_authz = true;
|
||||
params->tls_authz = g_strdup(s->parameters.tls_authz);
|
||||
params->tls_authz = g_strdup(s->parameters.tls_authz ?
|
||||
s->parameters.tls_authz : "");
|
||||
params->has_max_bandwidth = true;
|
||||
params->max_bandwidth = s->parameters.max_bandwidth;
|
||||
params->has_downtime_limit = true;
|
||||
@ -1243,7 +1244,7 @@ static bool migrate_params_check(MigrationParameters *params, Error **errp)
|
||||
error_setg(errp, QERR_INVALID_PARAMETER_VALUE,
|
||||
"xbzrle_cache_size",
|
||||
"is invalid, it should be bigger than target page size"
|
||||
" and a power of two");
|
||||
" and a power of 2");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -980,6 +980,7 @@ static void migration_bitmap_sync_precopy(RAMState *rs)
|
||||
*/
|
||||
if (precopy_notify(PRECOPY_NOTIFY_BEFORE_BITMAP_SYNC, &local_err)) {
|
||||
error_report_err(local_err);
|
||||
local_err = NULL;
|
||||
}
|
||||
|
||||
migration_bitmap_sync(rs);
|
||||
|
@ -303,7 +303,7 @@ void hmp_info_migrate(Monitor *mon, const QDict *qdict)
|
||||
info->xbzrle_cache->cache_miss);
|
||||
monitor_printf(mon, "xbzrle cache miss rate: %0.2f\n",
|
||||
info->xbzrle_cache->cache_miss_rate);
|
||||
monitor_printf(mon, "xbzrle overflow : %" PRIu64 "\n",
|
||||
monitor_printf(mon, "xbzrle overflow: %" PRIu64 "\n",
|
||||
info->xbzrle_cache->overflow);
|
||||
}
|
||||
|
||||
@ -459,9 +459,9 @@ void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict)
|
||||
monitor_printf(mon, "%s: %" PRIu64 "\n",
|
||||
MigrationParameter_str(MIGRATION_PARAMETER_MAX_POSTCOPY_BANDWIDTH),
|
||||
params->max_postcopy_bandwidth);
|
||||
monitor_printf(mon, " %s: '%s'\n",
|
||||
monitor_printf(mon, "%s: '%s'\n",
|
||||
MigrationParameter_str(MIGRATION_PARAMETER_TLS_AUTHZ),
|
||||
params->has_tls_authz ? params->tls_authz : "");
|
||||
params->tls_authz);
|
||||
}
|
||||
|
||||
qapi_free_MigrationParameters(params);
|
||||
@ -527,10 +527,11 @@ static void hmp_info_vnc_servers(Monitor *mon, VncServerInfo2List *server)
|
||||
|
||||
void hmp_info_vnc(Monitor *mon, const QDict *qdict)
|
||||
{
|
||||
VncInfo2List *info2l;
|
||||
VncInfo2List *info2l, *info2l_head;
|
||||
Error *err = NULL;
|
||||
|
||||
info2l = qmp_query_vnc_servers(&err);
|
||||
info2l_head = info2l;
|
||||
if (err) {
|
||||
hmp_handle_error(mon, err);
|
||||
return;
|
||||
@ -559,7 +560,7 @@ void hmp_info_vnc(Monitor *mon, const QDict *qdict)
|
||||
info2l = info2l->next;
|
||||
}
|
||||
|
||||
qapi_free_VncInfo2List(info2l);
|
||||
qapi_free_VncInfo2List(info2l_head);
|
||||
|
||||
}
|
||||
#endif
|
||||
@ -1261,6 +1262,7 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
|
||||
case MIGRATION_PARAMETER_THROTTLE_TRIGGER_THRESHOLD:
|
||||
p->has_throttle_trigger_threshold = true;
|
||||
visit_type_int(v, param, &p->throttle_trigger_threshold, &err);
|
||||
break;
|
||||
case MIGRATION_PARAMETER_CPU_THROTTLE_INITIAL:
|
||||
p->has_cpu_throttle_initial = true;
|
||||
visit_type_int(v, param, &p->cpu_throttle_initial, &err);
|
||||
|
@ -2801,6 +2801,9 @@ static void create_default_memdev(MachineState *ms, const char *path)
|
||||
object_property_set_int(obj, ms->ram_size, "size", &error_fatal);
|
||||
object_property_add_child(object_get_objects_root(), mc->default_ram_id,
|
||||
obj, &error_fatal);
|
||||
/* Ensure backend's memory region name is equal to mc->default_ram_id */
|
||||
object_property_set_bool(obj, false, "x-use-canonical-path-for-ramblock-id",
|
||||
&error_fatal);
|
||||
user_creatable_complete(USER_CREATABLE(obj), &error_fatal);
|
||||
object_unref(obj);
|
||||
object_property_set_str(OBJECT(ms), mc->default_ram_id, "memory-backend",
|
||||
|
@ -1211,7 +1211,7 @@ static void test_migrate_auto_converge(void)
|
||||
* without throttling.
|
||||
*/
|
||||
migrate_set_parameter_int(from, "downtime-limit", 1);
|
||||
migrate_set_parameter_int(from, "max-bandwidth", 100000000); /* ~100Mb/s */
|
||||
migrate_set_parameter_int(from, "max-bandwidth", 1000000); /* ~1Mb/s */
|
||||
|
||||
/* To check remaining size after precopy */
|
||||
migrate_set_capability(from, "pause-before-switchover", true);
|
||||
|
@ -1520,8 +1520,7 @@ out_err:
|
||||
if (d) {
|
||||
if (d->dp) {
|
||||
closedir(d->dp);
|
||||
}
|
||||
if (fd != -1) {
|
||||
} else if (fd != -1) {
|
||||
close(fd);
|
||||
}
|
||||
free(d);
|
||||
|
Loading…
Reference in New Issue
Block a user