diff options
author | Artem Germanov <agermanov@anchorfree.com> | 2016-09-07 10:49:36 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-09-08 17:16:12 -0700 |
commit | db7196a0d0984b933ccf2cd6a60e26abf466e8a3 (patch) | |
tree | 398091b1629212ad6600da508dd0b41a1cbe0385 /net/ipv4/tcp_yeah.c | |
parent | 81d1a366ff814211f3169e6b3e2c9eea682a679e (diff) | |
download | linux-db7196a0d0984b933ccf2cd6a60e26abf466e8a3.tar.gz linux-db7196a0d0984b933ccf2cd6a60e26abf466e8a3.tar.xz |
tcp: cwnd does not increase in TCP YeAH
Commit 76174004a0f19785a328f40388e87e982bbf69b9
(tcp: do not slow start when cwnd equals ssthresh )
introduced regression in TCP YeAH. Using 100ms delay 1% loss virtual
ethernet link kernel 4.2 shows bandwidth ~500KB/s for single TCP
connection and kernel 4.3 and above (including 4.8-rc4) shows bandwidth
~100KB/s.
That is caused by stalled cwnd when cwnd equals ssthresh. This patch
fixes it by proper increasing cwnd in this case.
Signed-off-by: Artem Germanov <agermanov@anchorfree.com>
Acked-by: Dmitry Adamushko <d.adamushko@anchorfree.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_yeah.c')
-rw-r--r-- | net/ipv4/tcp_yeah.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp_yeah.c b/net/ipv4/tcp_yeah.c index 028eb046ea40..9c5fc973267f 100644 --- a/net/ipv4/tcp_yeah.c +++ b/net/ipv4/tcp_yeah.c @@ -76,7 +76,7 @@ static void tcp_yeah_cong_avoid(struct sock *sk, u32 ack, u32 acked) if (!tcp_is_cwnd_limited(sk)) return; - if (tp->snd_cwnd <= tp->snd_ssthresh) + if (tcp_in_slow_start(tp)) tcp_slow_start(tp, acked); else if (!yeah->doing_reno_now) { |