Wei Yang <richardw.y...@linux.intel.com> wrote: > On Wed, Sep 04, 2019 at 08:29:15AM +0200, Juan Quintela wrote: >>Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> >>Signed-off-by: Juan Quintela <quint...@redhat.com> >>--- >> migration/socket.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >>diff --git a/migration/socket.c b/migration/socket.c >>index e63f5e1612..97c9efde59 100644 >>--- a/migration/socket.c >>+++ b/migration/socket.c >>@@ -178,10 +178,15 @@ static void >>socket_start_incoming_migration(SocketAddress *saddr, >> { >> QIONetListener *listener = qio_net_listener_new(); >> size_t i; >>+ int num = 1; >> >> qio_net_listener_set_name(listener, "migration-socket-listener"); >> >>- if (qio_net_listener_open_sync(listener, saddr, 1, errp) < 0) { >>+ if (migrate_use_multifd()) { >>+ num = migrate_multifd_channels(); >>+ } >>+ >>+ if (qio_net_listener_open_sync(listener, saddr, num, errp) < 0) { >> object_unref(OBJECT(listener)); >> return; >> } > > My confusion is this function is called at the beginning of the program, which > means we didn't set multifd on or change the multifd channel parameter. > > They are the default value at this point. > > Am I right?
Hi good catch! You are right. The fix worked for me because I always use on the command line: --global migration.multifd-channels=10 or whatever number I want to avoid typing. I can only see two solutions: - increase the number always - require "defer" when using multifd to be able to setup parameters. Any other good ideas? Thanks, Juan. PD. I was having problem reproducing this issue because I use the command line for the parameter.