Hi In this v2: - dropped the already included patches upstream - dropped the semaphore changes - add backlog listen parameter through all the call chain (danp suggestion) - also add the change for qio_channel_socket_async(), for consistency (it has zero users on tree anyways) - for "fd" case, I just give an error if expected number of connections is bigger than 1. - All patches except the multifd one should be noops (i.e. I pass everywhere the number of expected channels as one).
With this changes, I can migrate with 100 channels consistently. It always work. Please, review. Juan Quintela (5): socket: Add backlog parameter to socket_listen socket: Add num connections to qio_channel_socket_sync() socket: Add num connections to qio_channel_socket_async() socket: Add num connections to qio_net_listener_open_sync() multifd: Use number of channels as listen backlog blockdev-nbd.c | 2 +- chardev/char-socket.c | 2 +- include/io/channel-socket.h | 4 ++++ include/io/net-listener.h | 2 ++ include/qemu/sockets.h | 2 +- io/channel-socket.c | 35 +++++++++++++++++++++++++--------- io/net-listener.c | 3 ++- io/trace-events | 4 ++-- migration/socket.c | 7 ++++++- qemu-nbd.c | 2 +- qga/channel-posix.c | 2 +- scsi/qemu-pr-helper.c | 3 ++- tests/test-char.c | 4 ++-- tests/test-io-channel-socket.c | 4 ++-- tests/test-util-sockets.c | 12 ++++++------ tests/tpm-emu.c | 2 +- ui/vnc.c | 4 ++-- util/qemu-sockets.c | 33 +++++++++++++++++++++----------- util/trace-events | 2 ++ 19 files changed, 86 insertions(+), 43 deletions(-) -- 2.21.0