From: David S. Miller Date: Tue, 5 Jul 2005 22:43:58 +0000 (-0700) Subject: [TCP]: Never TSO defer under periods of congestion. X-Git-Tag: v2.6.13-rc2~6^2~1 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=908a75c17a9e5a888347c2c1d3572203d1b1c7db;p=linux-2.6 [TCP]: Never TSO defer under periods of congestion. Congestion window recover after loss depends upon the fact that if we have a full MSS sized frame at the head of the send queue, we will send it. TSO deferral can defeat the ACK clocking necessary to exit cleanly from recovery. Signed-off-by: David S. Miller --- diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index fd3ce38184..e041d057ec 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -909,6 +909,9 @@ static int tcp_tso_should_defer(struct sock *sk, struct tcp_sock *tp, struct sk_ if (TCP_SKB_CB(skb)->flags & TCPCB_FLAG_FIN) return 0; + if (tp->ca_state != TCP_CA_Open) + return 0; + in_flight = tcp_packets_in_flight(tp); BUG_ON(tcp_skb_pcount(skb) <= 1 ||