Eric Dumazet f4dae54e48 tcp: plug skb_still_in_host_queue() to TSQ
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 1f3279ae0c13 ("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: Eric Dumazet <edumazet@google.com>
Reported-by: Neil Spring <ntspring@fb.com>
Reported-by: Jakub Kicinski <kuba@kernel.org>
Cc: Neal Cardwell <ncardwell@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-03-11 18:35:31 -08:00
..
2020-03-12 15:55:00 -07:00
2021-01-11 18:20:09 -08:00
2020-11-09 17:50:28 -08:00
2020-11-09 17:50:28 -08:00
2021-01-29 20:59:53 -08:00
2020-12-16 11:01:04 -08:00
2020-03-16 18:26:54 -07:00
2020-12-14 16:40:27 -08:00
2020-03-16 18:26:55 -07:00
2021-03-01 15:32:05 -08:00