diff options
author | Steven Hartland <smh@FreeBSD.org> | 2017-04-10 08:19:35 +0000 |
---|---|---|
committer | Steven Hartland <smh@FreeBSD.org> | 2017-04-10 08:19:35 +0000 |
commit | e44c1887fdb21e349a778007fcd6d72d9cf45552 (patch) | |
tree | 6f60c36327c66eaf6ba39d2ec97dc0260b5a1588 /sys/netinet/tcp_var.h | |
parent | f3ac3a6e6f51569b666257bd44c0c0123a9297bb (diff) | |
download | src-e44c1887fdb21e349a778007fcd6d72d9cf45552.tar.gz src-e44c1887fdb21e349a778007fcd6d72d9cf45552.zip |
Use estimated RTT for receive buffer auto resizing instead of timestamps
Switched from using timestamps to RTT estimates when performing TCP receive
buffer auto resizing, as not all hosts support / enable TCP timestamps.
Disabled reset of receive buffer auto scaling when not in bulk receive mode,
which gives an extra 20% performance increase.
Also extracted auto resizing to a common method shared between standard and
fastpath modules.
With this AWS S3 downloads at ~17ms latency on a 1Gbps connection jump from
~3MB/s to ~100MB/s using the default settings.
Reviewed by: lstewart, gnn
MFC after: 2 weeks
Relnotes: Yes
Sponsored by: Multiplay
Differential Revision: https://reviews.freebsd.org/D9668
Notes
Notes:
svn path=/head/; revision=316676
Diffstat (limited to 'sys/netinet/tcp_var.h')
-rw-r--r-- | sys/netinet/tcp_var.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h index 5705e553d1d3..d298c9dd6c61 100644 --- a/sys/netinet/tcp_var.h +++ b/sys/netinet/tcp_var.h @@ -778,6 +778,8 @@ void hhook_run_tcp_est_in(struct tcpcb *tp, #endif int tcp_input(struct mbuf **, int *, int); +int tcp_autorcvbuf(struct mbuf *, struct tcphdr *, struct socket *, + struct tcpcb *, int); void tcp_do_segment(struct mbuf *, struct tcphdr *, struct socket *, struct tcpcb *, int, int, uint8_t, int); |