• Eric Dumazet's avatar
    tcp: plug skb_still_in_host_queue() to TSQ · f4dae54e
    Eric Dumazet authored
    Jakub and Neil reported an increase of RTO timers whenever
    TX completions are delayed a bit more (by increasing
    NIC TX coalescing parameters)
    
    Main issue is that TCP stack has a logic preventing a packet
    being retransmit if the prior clone has not yet been
    orphaned or freed.
    
    This logic came with commit 1f3279ae
    
     ("tcp: avoid
    retransmits of TCP packets hanging in host queues")
    
    Thankfully, in the case skb_still_in_host_queue() detects
    the initial clone is still in flight, it can use TSQ logic
    that will eventually retry later, at the moment the clone
    is freed or orphaned.
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Reported-by: default avatarNeil Spring <ntspring@fb.com>
    Reported-by: default avatarJakub Kicinski <kuba@kernel.org>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f4dae54e
tcp_output.c 119 KB