• Eric Dumazet's avatar
    tcp_cubic: refine Hystart delay threshold · 42eef7a0
    Eric Dumazet authored
    In commit 2b4636a5 ("tcp_cubic: make the delay threshold of HyStart
    less sensitive"), HYSTART_DELAY_MIN was changed to 4 ms.
    
    The remaining problem is that using delay_min + (delay_min/16) as the
    threshold is too sensitive.
    
    6.25 % of variation is too small for rtt above 60 ms, which are not
    uncommon.
    
    Lets use 12.5 % instead (delay_min + (delay_min/8))
    
    Tested:
     80 ms RTT between peers, FQ/pacing packet scheduler on sender.
     10 bulk transfers of 10 seconds :
    
    nstat >/dev/null
    for i in `seq 1 10`
     do
       netperf -H remote -- -k THROUGHPUT | grep THROUGHPUT
     done
    nstat | grep Hystart
    
    With the 6.25 % threshold :
    
    THROUGHPUT=20.66
    THROUGHPUT=249.38
    THROUGHPUT=254.10
    THROUGHPUT=14.94
    THROUGHPUT=251.92
    THROUGHPUT=237.73
    THROUGHPUT=19.18
    THROUGHPUT=252.89
    THROUGHPUT=21.32
    THROUGHPUT=15.58
    TcpExtTCPHystartTrainDetect     2                  0.0
    TcpExtTCPHystartTrainCwnd       4756               0.0
    TcpExtTCPHystartDelayDetect     5                  0.0
    TcpExtTCPHystartDelayCwnd       180                0.0
    
    With the 12.5 % threshold
    THROUGHPUT=251.09
    THROUGHPUT=247.46
    THROUGHPUT=250.92
    THROUGHPUT=248.91
    THROUGHPUT=250.88
    THROUGHPUT=249.84
    THROUGHPUT=250.51
    THROUGHPUT=254.15
    THROUGHPUT=250.62
    THROUGHPUT=250.89
    TcpExtTCPHystartTrainDetect     1                  0.0
    TcpExtTCPHystartTrainCwnd       3175               0.0
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
    Tested-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    42eef7a0
tcp_cubic.c 14.2 KB