Files
linux/net/ipv4
Eric Dumazet a0ea700e40 tcp: tso: allow CA_CWR state in tcp_tso_should_defer()
Another TCP issue is triggered by ECN.

Under pressure, receiver gets ECN marks, and send back ACK packets
with ECE TCP flag. Senders enter CA_CWR state.

In this state, tcp_tso_should_defer() is short cut :

if (icsk->icsk_ca_state != TCP_CA_Open)
    goto send_now;

This means that about all ACK packets we receive are triggering
a partial send, and because cwnd is kept small, we can only send
a small amount of data for each incoming ACK,
which in return generate more ACK packets.

Allowing CA_Open and CA_CWR states to enable TSO defer in
tcp_tso_should_defer() brings performance back :
TSO autodefer has more chance to defer under pressure.

This patch increases TSO and LRO/GRO efficiency back to normal levels,
and does not impact overall ECN behavior.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-02-28 15:10:39 -05:00
..
2014-09-18 10:54:36 +02:00
2014-11-06 15:11:10 -05:00
2015-02-27 16:37:07 -05:00
2015-02-27 16:37:07 -05:00
2015-01-31 17:48:18 -08:00
2013-12-29 16:34:25 -05:00
2013-10-08 23:19:24 -04:00
2015-02-02 18:46:51 -08:00
2014-02-19 11:41:25 +01:00
2015-01-28 22:18:37 -08:00
2015-02-20 15:04:03 -05:00
2014-09-01 18:12:45 -07:00
2014-09-01 18:12:45 -07:00
2014-09-01 18:12:45 -07:00
2014-09-01 18:12:45 -07:00
2014-09-01 18:12:45 -07:00
2014-11-05 23:52:33 -08:00
2014-09-01 18:12:45 -07:00
2015-01-28 22:18:37 -08:00
2014-09-01 18:12:45 -07:00
2015-01-28 22:18:37 -08:00
2015-01-28 22:18:37 -08:00
2014-05-23 16:28:53 -04:00
2013-05-31 17:19:05 -07:00