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.

Reply via email to