]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: implement TSQ for retransmits
authorEric Dumazet <edumazet@google.com>
Wed, 21 Sep 2016 05:45:58 +0000 (22:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 22 Sep 2016 06:44:16 +0000 (02:44 -0400)
commit3b34bfd28dbe9e3a0bb079425d79219d3d24220a
treeea446b0df2685f3869cfcfcf52b99b545da2362f
parent1c0b05e62525ade781449e913ba3ffd140538881
tcp: implement TSQ for retransmits

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
c24f111438b4 ("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: Eric Dumazet <edumazet@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_output.c