1. 13 Dec, 2017 38 commits
  2. 12 Dec, 2017 2 commits
    • David S. Miller's avatar
      Merge branch 'tcp-better-receiver-autotuning' · 48d79b49
      David S. Miller authored
      Eric Dumazet says:
      
      ====================
      tcp: better receiver autotuning
      
      Now TCP senders no longer backoff when a drop is detected,
      it appears we are very often receive window limited.
      
      This series makes tcp_rcv_space_adjust() slightly more robust
      and responsive.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      48d79b49
    • Eric Dumazet's avatar
      tcp: smoother receiver autotuning · c3916ad9
      Eric Dumazet authored
      Back in linux-3.13 (commit b0983d3c ("tcp: fix dynamic right sizing"))
      I addressed the pressing issues we had with receiver autotuning.
      
      But DRS suffers from extra latencies caused by rcv_rtt_est.rtt_us
      drifts. One common problem happens during slow start, since the
      apparent RTT measured by the receiver can be inflated by ~50%,
      at the end of one packet train.
      
      Also, a single drop can delay read() calls by one RTT, meaning
      tcp_rcv_space_adjust() can be called one RTT too late.
      
      By replacing the tri-modal heuristic with a continuous function,
      we can offset the effects of not growing 'at the optimal time'.
      
      The curve of the function matches prior behavior if the space
      increased by 25% and 50% exactly.
      
      Cost of added multiply/divide is small, considering a TCP flow
      typically would run this part of the code few times in its life.
      
      I tested this patch with 100 ms RTT / 1% loss link, 100 runs
      of (netperf -l 5), and got an average throughput of 4600 Mbit
      instead of 1700 Mbit.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Acked-by: default avatarWei Wang <weiwan@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c3916ad9