• Eric Dumazet's avatar
    tcp: cubic: fix bug in bictcp_acked() · cd6b423a
    Eric Dumazet authored
    While investigating about strange increase of retransmit rates
    on hosts ~24 days after boot, Van found hystart was disabled
    if ca->epoch_start was 0, as following condition is true
    when tcp_time_stamp high order bit is set.
    
    (s32)(tcp_time_stamp - ca->epoch_start) < HZ
    
    Quoting Van :
    
     At initialization & after every loss ca->epoch_start is set to zero so
     I believe that the above line will turn off hystart as soon as the 2^31
     bit is set in tcp_time_stamp & hystart will stay off for 24 days.
     I think we've observed that cubic's restart is too aggressive without
     hystart so this might account for the higher drop rate we observe.
    Diagnosed-by: default avatarVan Jacobson <vanj@google.com>
    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>
    cd6b423a
tcp_cubic.c 14 KB