From: Thomas Graf <tgraf@redhat.com> Date: Tue, 5 Aug 2008 13:38:51 +0200 Subject: [net] slow_start_after_idle influences cwnd validation Message-id: 20080805113851.GA22485@plip.localdomain O-Subject: [PATCH RHEL5.3] BZ#448918: slow_start_after_idle should influence cwnd validation too Bugzilla: 448918 RH-Acked-by: Neil Horman <nhorman@redhat.com> This is a straight back port of commit: commit 15d33c070ddde99f7368e6b17b71d22c866f97d9 Author: David S. Miller <davem@sunset.davemloft.net> Date: Mon Apr 9 13:23:14 2007 -0700 [TCP]: slow_start_after_idle should influence cwnd validation too For the cases that slow_start_after_idle are meant to deal with, it is almost a certainty that the congestion window tests will think the connection is application limited and we'll thus decrease the cwnd there too. This defeats the whole point of setting slow_start_after_idle to zero. So test it there too. We do not cancel out the entire tcp_cwnd_validate() function so that if the sysctl is changed we still have the validation state maintained. Signed-off-by: David S. Miller <davem@davemloft.net> Please ACK diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 6bbd703..bcf3912 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -877,7 +877,8 @@ static void tcp_cwnd_validate(struct sock *sk, struct tcp_sock *tp) if (tp->packets_out > tp->snd_cwnd_used) tp->snd_cwnd_used = tp->packets_out; - if ((s32)(tcp_time_stamp - tp->snd_cwnd_stamp) >= inet_csk(sk)->icsk_rto) + if (sysctl_tcp_slow_start_after_idle && + (s32)(tcp_time_stamp - tp->snd_cwnd_stamp) >= inet_csk(sk)->icsk_rto) tcp_cwnd_application_limited(sk); } }