From 058665b9fe8b00c799b3db5d9202b007fab1c2fb Mon Sep 17 00:00:00 2001 From: Andreas Gustafsson Date: Wed, 7 Mar 2018 23:26:15 +0100 Subject: slirp: disable Nagle in outgoing connections When setting up an outgoing user mode networking TCP connection, disable the Nagle algorithm in the host-side connection. Either the guest is already doing Nagle, in which case there is no point in doing it twice, or it has chosen to disable it, in which case we should respect that choice. This change speeds up GDB remote debugging over TCP over user mode networking (with GDB runing on the guest) by multiple orders of magnitude, and has been part of the local patches applied by pkgsrc since 2012 with no reported ill effects. Signed-off-by: Andreas Gustafsson Reviewed-by: Kamil Rytarowski Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Samuel Thibault --- slirp/tcp_subr.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'slirp/tcp_subr.c') diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c index da0d53743f..8d0f94b75f 100644 --- a/slirp/tcp_subr.c +++ b/slirp/tcp_subr.c @@ -416,6 +416,8 @@ int tcp_fconnect(struct socket *so, unsigned short af) socket_set_fast_reuse(s); opt = 1; qemu_setsockopt(s, SOL_SOCKET, SO_OOBINLINE, &opt, sizeof(opt)); + opt = 1; + qemu_setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &opt, sizeof(opt)); addr = so->fhost.ss; DEBUG_CALL(" connect()ing") -- cgit v1.2.3-55-g7522