]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: avoid retransmits of TCP packets hanging in host queues
authorEric Dumazet <edumazet@google.com>
Mon, 21 Apr 2014 00:58:17 +0000 (17:58 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 23 Apr 2014 01:27:57 +0000 (21:27 -0400)
commit3ef9fffda161746aa14cbca67685616f1efe82e7
tree48cabf2c099db7586abdbf22ac92c1bcb2e1cb89
parent724a976af3c3cc31d9d75c2ede613067755a2bc7
tcp: avoid retransmits of TCP packets hanging in host queues

In commit ee65fcce7ce4 ("tcp: introduce TCPSpuriousRtxHostQueues SNMP
counter") we added a logic to detect when a packet was retransmitted
while the prior clone was still in a qdisc or driver queue.

We are now confident we can do better, and catch the problem before
we fragment a TSO packet before retransmit, or in TLP path.

This patch fully exploits the logic by simply canceling the spurious
retransmit.
Original packet is in a queue and will eventually leave the host.

This helps to avoid network collapses when some events make the RTO
estimations very wrong, particularly when dealing with huge number of
sockets with synchronized blast.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_output.c