tcp: tso: allow deferring under reordering state
authorEric Dumazet <edumazet@google.com>
Sun, 26 Jul 2015 07:45:24 +0000 (09:45 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jul 2015 08:23:20 +0000 (01:23 -0700)
commit99d7662a04c4f9822b042f22ae37f8c7355c2d5a
tree838eb08faeb657f99bb0fd437c5da84b5ee7477e
parent2f45d1902acfc7e6680cfeeb38922dcc7e16deb6
tcp: tso: allow deferring under reordering state

While doing experiments with reordering resilience, we found
linux senders were not able to send at full speed under reordering,
because every incoming SACK was releasing one MSS.

This patch removes the limitation, as we did for CWR state
in commit a0ea700e409 ("tcp: tso: allow CA_CWR state in
tcp_tso_should_defer()")

Neal Cardwell had a concern about limited transmit so
Yuchung conducted experiments on GFE and found nothing
worth adding an extra check on fast path :

  if (icsk->icsk_ca_state == TCP_CA_Disorder &&
      tcp_sk(sk)->reordering == sysctl_tcp_reordering)
          goto send_now;

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_output.c