Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -2275,13 +2275,12 @@ void tcp_send_loss_probe(struct sock *sk)
		tp->tlp_high_seq = tp->snd_nxt;

rearm_timer:
	inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
				  inet_csk(sk)->icsk_rto,
				  TCP_RTO_MAX);

	if (likely(!err))
		NET_INC_STATS_BH(sock_net(sk),
				 LINUX_MIB_TCPLOSSPROBES);
	if (likely(!err)) {
		NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPLOSSPROBES);
		/* Reset s.t. tcp_rearm_rto will restart timer from now */
		inet_csk(sk)->icsk_pending = 0;
	}
	tcp_rearm_rto(sk);
}

/* Push out any pending frames which were held back due to