• Eric Dumazet's avatar
    tcp: tso: remove tp->tso_deferred · 5f852eb5
    Eric Dumazet authored
    TSO relies on ability to defer sending a small amount of packets.
    Heuristic is to wait for future ACKS in hope to send more packets at once.
    Current algorithm uses a per socket tso_deferred field as a pseudo timer.
    
    This pseudo timer relies on future ACK, but there is no guarantee
    we receive them in time.
    
    Fix would be to use a real timer, but cost of such timer is probably too
    expensive for typical cases.
    
    This patch changes the logic to test the time of last transmit,
    because we should not add bursts of more than 1ms for any given flow.
    
    We've used this patch for about two years at Google, before FQ/pacing
    as it would reduce a fair amount of bursts.
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5f852eb5
tcp_output.c 97.8 KB