Reduce -netdev socket latency by disabling the Nagle algorithm on SOCK_STREAM sockets in net/socket.c. Since we are tunelling Ethernet over TCP we shouldn't artificially delay outgoing packets, let the guest decide packet scheduling.
I already get sub-millisecond -netdev socket ping times on localhost, so there was no measurable difference in my testing. This won't hurt though and may improve remote socket performance. Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Reviewed-by: Benoit Canet <ben...@irqsave.net> Reviewed-by: Daniel P. Berrange <berra...@redhat.com> --- net/socket.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/socket.c b/net/socket.c index d8b35a2..b0c83e0 100644 --- a/net/socket.c +++ b/net/socket.c @@ -438,6 +438,9 @@ static NetSocketState *net_socket_fd_init_stream(NetClientState *peer, s->fd = fd; s->listen_fd = -1; + /* Disable Nagle algorithm on TCP sockets to reduce latency */ + socket_set_nodelay(fd); + if (is_connected) { net_socket_connect(s); } else { -- 1.8.1.4