Peter Xu <pet...@redhat.com> wrote: >> @@ -1659,6 +1662,10 @@ void hmp_migrate_set_parameter(Monitor *mon, const >> QDict *qdict) >> } >> p->xbzrle_cache_size = cache_size; >> break; >> + case MIGRATION_PARAMETER_TCP_PORT: >> + p->has_tcp_port = true; >> + visit_type_uint16(v, param, &p->tcp_port, &err); > > Should we allow user to set this parameter? Or it's just used for > query, only? (AFAIU from next patch, this is only used for query)
Only for query. Really it is only needed for tcp, due to the wierd way that ports are allocated to allow for test running in parallel safely. > >> + break; >> default: >> assert(0); >> } >> diff --git a/migration/migration.c b/migration/migration.c >> index 19917a4b5b..abc02d4efd 100644 >> --- a/migration/migration.c >> +++ b/migration/migration.c >> @@ -517,6 +517,8 @@ MigrationParameters *qmp_query_migrate_parameters(Error >> **errp) >> params->x_multifd_page_count = s->parameters.x_multifd_page_count; >> params->has_xbzrle_cache_size = true; >> params->xbzrle_cache_size = s->parameters.xbzrle_cache_size; >> + params->has_tcp_port = true; >> + params->tcp_port = s->parameters.tcp_port; >> >> return params; >> } >> @@ -884,6 +886,9 @@ static void >> migrate_params_test_apply(MigrateSetParameters *params, >> if (params->has_xbzrle_cache_size) { >> dest->xbzrle_cache_size = params->xbzrle_cache_size; >> } >> + if (params->has_tcp_port) { >> + dest->tcp_port = params->tcp_port; >> + } >> } >> >> static void migrate_params_apply(MigrateSetParameters *params, Error **errp) >> @@ -956,6 +961,9 @@ static void migrate_params_apply(MigrateSetParameters >> *params, Error **errp) >> s->parameters.xbzrle_cache_size = params->xbzrle_cache_size; >> xbzrle_cache_resize(params->xbzrle_cache_size, errp); >> } >> + if (params->has_tcp_port) { >> + s->parameters.tcp_port = params->tcp_port; >> + } >> } >> >> void qmp_migrate_set_parameters(MigrateSetParameters *params, Error **errp) >> @@ -2422,6 +2430,8 @@ static Property migration_properties[] = { >> DEFINE_PROP_SIZE("xbzrle-cache-size", MigrationState, >> parameters.xbzrle_cache_size, >> DEFAULT_MIGRATE_XBZRLE_CACHE_SIZE), >> + DEFINE_PROP_UINT16("x-tcp-port", MigrationState, >> + parameters.tcp_port, 0), > > Same question here... If it's only for querying, why allow user to > specify it? You are right. Because *I* changed the x-uri bits into this. and for x-uri it made sense. And I just did the conversion, witohut too much thinking. Later, Juan.