Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Feb 2017 20:31:53 +0000
From:      Steven Hartland <steven.hartland@multiplay.co.uk>
To:        Michael Tuexen <tuexen@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r314155 - head/sys/netinet
Message-ID:  <b8053950-75a5-f473-7703-322a6f5abbf1@multiplay.co.uk>
In-Reply-To: <201702231814.v1NIEahd095397@repo.freebsd.org>
References:  <201702231814.v1NIEahd095397@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
You might also be interested in reviewing my fix for TCP buffer scaling 
too Michael.
https://reviews.freebsd.org/D9668

This fixes slow transfers due to no receive buffer scaling if TCP 
timestamps aren't negotiated.

Its still got debug stuff in it ATM and I'm toying with removing the 
different cases between estimated RTT and timestamps as there appears to 
be no difference in practice.

Tests here show jump from ~3MB/s @ 1Gbps and 17ms latency to 100MB/s, 
pretty much line rate, which is in line with Linux results.

Any feedback welcome.

     Regards
     Steve

On 23/02/2017 18:14, Michael Tuexen wrote:
> Author: tuexen
> Date: Thu Feb 23 18:14:36 2017
> New Revision: 314155
> URL: https://svnweb.freebsd.org/changeset/base/314155
>
> Log:
>    TCP window updates are only sent if the window can be increased by at
>    least 2 * MSS. However, if the receive buffer size is small, this might
>    be impossible. Add back a criterion to send a TCP window update if
>    the window can be increased by at least half of the receive buffer size.
>    This condition was removed in r242252. This patch simply brings it back.
>    PR:			211003
>    Reviewed by:		gnn
>    MFC after:		1 week
>    Sponsored by:		Netflix, Inc.
>    Differential Revision:	https://reviews.freebsd.org/D9475
>
> Modified:
>    head/sys/netinet/tcp_output.c
>
> Modified: head/sys/netinet/tcp_output.c
> ==============================================================================
> --- head/sys/netinet/tcp_output.c	Thu Feb 23 17:56:24 2017	(r314154)
> +++ head/sys/netinet/tcp_output.c	Thu Feb 23 18:14:36 2017	(r314155)
> @@ -696,6 +696,8 @@ after_sack_rexmit:
>   		     recwin <= (so->so_rcv.sb_hiwat / 8) ||
>   		     so->so_rcv.sb_hiwat <= 8 * tp->t_maxseg))
>   			goto send;
> +		if (2 * adv >= (int32_t)so->so_rcv.sb_hiwat)
> +			goto send;
>   	}
>   dontupdate:
>   
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b8053950-75a5-f473-7703-322a6f5abbf1>