summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorArtem Germanov <agermanov@anchorfree.com>2016-09-07 10:49:36 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-09-24 10:09:26 +0200
commitd0a2b134caadd948f277a62f6715fa86d30e7f2d (patch)
tree8f9def54478d258091ce47ab9252d53c4a8f2aa8 /net
parent28186a5c98d1a173596c1ec94a95d25215428496 (diff)
downloadlwn-d0a2b134caadd948f277a62f6715fa86d30e7f2d.tar.gz
lwn-d0a2b134caadd948f277a62f6715fa86d30e7f2d.zip
tcp: cwnd does not increase in TCP YeAH
[ Upstream commit db7196a0d0984b933ccf2cd6a60e26abf466e8a3 ] 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/tcp_yeah.c2
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) {