]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: refine tcp_pacing_delay() for very low pacing rates
authorEric Dumazet <edumazet@google.com>
Mon, 4 May 2020 18:27:49 +0000 (11:27 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 7 May 2020 00:29:38 +0000 (17:29 -0700)
commitb4bddbb6845e429d67340c7632efb2f914e2396c
treec709098fe394ed7fbae16c836d90ee3f15c1d10e
parentae8589a86dfc03e02ebf86abdedf41fe0f0b7c4e
tcp: refine tcp_pacing_delay() for very low pacing rates

With the addition of horizon feature to sch_fq, we noticed some
suboptimal behavior of extremely low pacing rate TCP flows, especially
when TCP is not aware of a drop happening in lower stacks.

Back in commit b633f6497266 ("tcp: add tcp_reset_xmit_timer() helper"),
tcp_pacing_delay() was added to estimate an extra delay to add to standard
rto timers.

This patch removes the skb argument from this helper and
tcp_reset_xmit_timer() because it makes more sense to simply
consider the time at which next packet is allowed to be sent,
instead of the time of whatever packet has been sent.

This avoids arming RTO timer too soon and removes
spurious horizon drops.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_input.c
net/ipv4/tcp_output.c