[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] TCP_NODELAY for -redir
From: |
Daniel Jacobowitz |
Subject: |
Re: [Qemu-devel] TCP_NODELAY for -redir |
Date: |
Mon, 18 Dec 2006 22:23:36 -0500 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
On Mon, Nov 13, 2006 at 02:30:27PM -0500, Daniel Jacobowitz wrote:
> I was trying to run GDB remote debug tests through a -redir socket
> today. It crawled unbelievably. Paul guessed that slirp wasn't using
> TCP_NODELAY, and Nagle was to blame.
>
> He was even righter than usual. Adding TCP_NODELAY speeds up this
> particular workload by (very approximately) 54x. See trivial attached
> patch.
Ping. I still think this patch is a good idea for the reasons
previously explained.
> Index: qemu/slirp/tcp.h
> ===================================================================
> --- qemu.orig/slirp/tcp.h 2006-11-13 14:25:24.000000000 -0500
> +++ qemu/slirp/tcp.h 2006-11-13 14:25:29.000000000 -0500
> @@ -112,7 +112,7 @@ struct tcphdr {
> /*
> * User-settable options (used with setsockopt).
> */
> -/* #define TCP_NODELAY 0x01 */ /* don't delay send to coalesce packets
> */
> +#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets
> */
> /* #define TCP_MAXSEG 0x02 */ /* set maximum segment size */
>
> /*
> Index: qemu/slirp/tcp_subr.c
> ===================================================================
> --- qemu.orig/slirp/tcp_subr.c 2006-11-13 14:22:34.000000000 -0500
> +++ qemu/slirp/tcp_subr.c 2006-11-13 14:23:31.000000000 -0500
> @@ -499,6 +499,8 @@ tcp_connect(inso)
> setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int));
> opt = 1;
> setsockopt(s,SOL_SOCKET,SO_OOBINLINE,(char *)&opt,sizeof(int));
> + opt = 1;
> + setsockopt(s,IPPROTO_TCP,TCP_NODELAY,(char *)&opt,sizeof(int));
>
> so->so_fport = addr.sin_port;
> so->so_faddr = addr.sin_addr;
>
>
--
Daniel Jacobowitz
CodeSourcery
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] TCP_NODELAY for -redir,
Daniel Jacobowitz <=