qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]