Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 27922b4260f65d317aabda37e42bbbff > files > 3116

kernel-2.6.18-238.el5.src.rpm

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);
 	}
 }