Skip to content
  • Eric Dumazet's avatar
    tcp: refine pacing rate determination · 43e122b0
    Eric Dumazet authored
    
    
    When TCP pacing was added back in linux-3.12, we chose
    to apply a fixed ratio of 200 % against current rate,
    to allow probing for optimal throughput even during
    slow start phase, where cwnd can be doubled every other gRTT.
    
    At Google, we found it was better applying a different ratio
    while in Congestion Avoidance phase.
    This ratio was set to 120 %.
    
    We've used the normal tcp_in_slow_start() helper for a while,
    then tuned the condition to select the conservative ratio
    as soon as cwnd >= ssthresh/2 :
    
    - After cwnd reduction, it is safer to ramp up more slowly,
      as we approach optimal cwnd.
    - Initial ramp up (ssthresh == INFINITY) still allows doubling
      cwnd every other RTT.
    
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    43e122b0