• Eric Dumazet's avatar
    tcp: implement TSQ for retransmits · f9616c35
    Eric Dumazet authored
    We saw sch_fq drops caused by the per flow limit of 100 packets and TCP
    when dealing with large cwnd and bursts of retransmits.
    
    Even after increasing the limit to 1000, and even after commit
    10d3be56 ("tcp-tso: do not split TSO packets at retransmit time"),
    we can still have these drops.
    
    Under certain conditions, TCP can spend a considerable amount of
    time queuing thousands of skbs in a single tcp_xmit_retransmit_queue()
    invocation, incurring latency spikes and stalls of other softirq
    handlers.
    
    This patch implements TSQ for retransmits, limiting number of packets
    and giving more chance for scheduling packets in both ways.
    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>
    f9616c35
tcp_output.c 104 KB