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:
Peter Maydell 2020-03-26 09:28:11 +00:00
commit 01e38186ec
8 changed files with 23 additions and 11 deletions

View File

@ -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.

View File

@ -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 */

View File

@ -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;
}

View File

@ -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);

View File

@ -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);

View File

@ -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",

View File

@ -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);

View File

@ -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);