From 689bf47b4af8ba9ea6b3b292a6e57b89e2c2d544 Mon Sep 17 00:00:00 2001 From: gson Date: Sat, 12 May 2012 09:56:51 +0000 Subject: When setting up an outgoing user mode networking TCP connection, disable the Nagle algorithm in the host-side connection. Either the VM 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 by multiple orders of magnitude. --- emulators/qemu/Makefile | 4 ++-- emulators/qemu/distinfo | 3 ++- emulators/qemu/patches/patch-slirp_tcp__subr.c | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 emulators/qemu/patches/patch-slirp_tcp__subr.c (limited to 'emulators/qemu') diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile index 3507e15ea1f..428218690a3 100644 --- a/emulators/qemu/Makefile +++ b/emulators/qemu/Makefile @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.89 2012/03/15 11:53:26 obache Exp $ +# $NetBSD: Makefile,v 1.90 2012/05/12 09:56:51 gson Exp $ DISTNAME= qemu-0.15.1 -PKGREVISION= 4 +PKGREVISION= 5 CATEGORIES= emulators MASTER_SITES= http://wiki.qemu.org/download/ diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo index 7a527fe3705..c7acca170b4 100644 --- a/emulators/qemu/distinfo +++ b/emulators/qemu/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.71 2011/10/19 18:45:42 ryoon Exp $ +$NetBSD: distinfo,v 1.72 2012/05/12 09:56:51 gson Exp $ SHA1 (qemu-0.15.1.tar.gz) = 30cf3b4dabb4b5d8efadb20f364eb8181f317681 RMD160 (qemu-0.15.1.tar.gz) = fd1cfde94f96569af671cc96d1c2e4bad524fd61 @@ -19,3 +19,4 @@ SHA1 (patch-hw_ppc__newworld.c) = a0011c05cd35aff8982b97c3ec669e18c11ad07b SHA1 (patch-hw_ppc__oldworld.c) = 790daed4d0bdc51628a6252716480510f8c444c8 SHA1 (patch-hw_xilinx__axienet.c) = 6f715e4e2241c3c9006bc571084ca5fd12658f13 SHA1 (patch-ioport.c) = bb0c6671eaf39ef9b846d0ea2633cb1d56edddb1 +SHA1 (patch-slirp_tcp__subr.c) = d2aca58ea0726b76b5f644af27fde0598beaf048 diff --git a/emulators/qemu/patches/patch-slirp_tcp__subr.c b/emulators/qemu/patches/patch-slirp_tcp__subr.c new file mode 100644 index 00000000000..c919112f829 --- /dev/null +++ b/emulators/qemu/patches/patch-slirp_tcp__subr.c @@ -0,0 +1,21 @@ +$NetBSD: patch-slirp_tcp__subr.c,v 1.1 2012/05/12 09:56:51 gson Exp $ + +When setting up an outgoing user mode networking TCP connection, +disable the Nagle algorithm in the host-side connection. Either +the VM 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 by multiple orders +of magnitude. + +--- slirp/tcp_subr.c.orig 2011-10-12 16:41:43.000000000 +0000 ++++ slirp/tcp_subr.c +@@ -334,6 +334,8 @@ int tcp_fconnect(struct socket *so) + setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(opt )); + opt = 1; + setsockopt(s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(opt )); ++ opt = 1; ++ setsockopt(s,IPPROTO_TCP,TCP_NODELAY,(char *)&opt,sizeof(int)); + + addr.sin_family = AF_INET; + if ((so->so_faddr.s_addr & slirp->vnetwork_mask.s_addr) == -- cgit v1.2.3