Commit fcd16c0a authored by Yuchung Cheng's avatar Yuchung Cheng Committed by David S. Miller

tcp: don't extend RTO on failed loss probe attempts

If TLP was unable to send a probe, it extended the RTO to
now + icsk_rto. But extending the RTO makes little sense
if no TLP probe went out. With this commit, instead of
extending the RTO we re-arm it relative to the transmit time
of the write queue head.
Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
Signed-off-by: default avatarNandita Dukkipati <nanditad@google.com>
Acked-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 646244b2
...@@ -2275,13 +2275,12 @@ void tcp_send_loss_probe(struct sock *sk) ...@@ -2275,13 +2275,12 @@ void tcp_send_loss_probe(struct sock *sk)
tp->tlp_high_seq = tp->snd_nxt; tp->tlp_high_seq = tp->snd_nxt;
rearm_timer: rearm_timer:
inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, if (likely(!err)) {
inet_csk(sk)->icsk_rto, NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPLOSSPROBES);
TCP_RTO_MAX); /* Reset s.t. tcp_rearm_rto will restart timer from now */
inet_csk(sk)->icsk_pending = 0;
if (likely(!err)) }
NET_INC_STATS_BH(sock_net(sk), tcp_rearm_rto(sk);
LINUX_MIB_TCPLOSSPROBES);
} }
/* Push out any pending frames which were held back due to /* Push out any pending frames which were held back due to
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment