svn commit: r314155 - head/sys/netinet
Steven Hartland
steven.hartland at multiplay.co.uk
Thu Feb 23 20:31:55 UTC 2017
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:
>
>
More information about the svn-src-all
mailing list