Skip to content

Commit b8f6fe6

Browse files
committed
tcp: use tcp_reset_xmit_timer()
JIRA: https://issues.redhat.com/browse/RHEL-115191 Upstream Status: linux.git Conflicts:\ - Hunk difference due to missing commit 8ea731d ("tcp: Make SYN ACK RTO tunable by BPF programs with TFO") in c9s. - Context differences due to missing commits d2a0fc3 ("tcp: fix wrong RTO timeout when received SACK reneging") and 9d0c00f ("tcp: rename tcp_time_stamp() to tcp_time_stamp_ts()") in c9s. commit 48b69b4 Author: Eric Dumazet <edumazet@google.com> Date: Fri Feb 7 15:28:28 2025 +0000 tcp: use tcp_reset_xmit_timer() In order to reduce TCP_RTO_MAX occurrences, replace: inet_csk_reset_xmit_timer(sk, what, when, TCP_RTO_MAX) With: tcp_reset_xmit_timer(sk, what, when, false); Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Jason Xing <kerneljasonxing@gmail.com> Reviewed-by: Neal Cardwell <ncardwell@google.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Antoine Tenart <atenart@redhat.com>
1 parent 45f1d31 commit b8f6fe6

File tree

5 files changed

+18
-21
lines changed

5 files changed

+18
-21
lines changed

net/ipv4/tcp_fastopen.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,8 @@ static struct sock *tcp_fastopen_create_child(struct sock *sk,
289289
* The request socket is not added to the ehash
290290
* because it's been added to the accept queue directly.
291291
*/
292-
inet_csk_reset_xmit_timer(child, ICSK_TIME_RETRANS,
293-
TCP_TIMEOUT_INIT, TCP_RTO_MAX);
292+
tcp_reset_xmit_timer(child, ICSK_TIME_RETRANS,
293+
TCP_TIMEOUT_INIT, false);
294294

295295
refcount_set(&req->rsk_refcnt, 2);
296296

net/ipv4/tcp_input.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2205,8 +2205,7 @@ static bool tcp_check_sack_reneging(struct sock *sk, int flag)
22052205
unsigned long delay = max(usecs_to_jiffies(tp->srtt_us >> 4),
22062206
msecs_to_jiffies(10));
22072207

2208-
inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
2209-
delay, TCP_RTO_MAX);
2208+
tcp_reset_xmit_timer(sk, ICSK_TIME_RETRANS, delay, false);
22102209
return true;
22112210
}
22122211
return false;
@@ -6254,9 +6253,8 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
62546253
after(TCP_SKB_CB(skb)->ack_seq, tp->snd_nxt)) {
62556254
/* Previous FIN/ACK or RST/ACK might be ignored. */
62566255
if (icsk->icsk_retransmits == 0)
6257-
inet_csk_reset_xmit_timer(sk,
6258-
ICSK_TIME_RETRANS,
6259-
TCP_TIMEOUT_MIN, TCP_RTO_MAX);
6256+
tcp_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
6257+
TCP_TIMEOUT_MIN, false);
62606258
SKB_DR_SET(reason, TCP_INVALID_ACK_SEQUENCE);
62616259
goto reset_and_undo;
62626260
}
@@ -6370,8 +6368,8 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
63706368
*/
63716369
inet_csk_schedule_ack(sk);
63726370
tcp_enter_quickack_mode(sk, TCP_MAX_QUICKACKS);
6373-
inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK,
6374-
TCP_DELACK_MAX, TCP_RTO_MAX);
6371+
tcp_reset_xmit_timer(sk, ICSK_TIME_DACK,
6372+
TCP_DELACK_MAX, false);
63756373
goto consume;
63766374
}
63776375
tcp_send_ack(sk);

net/ipv4/tcp_ipv4.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,8 +446,7 @@ void tcp_ld_RTO_revert(struct sock *sk, u32 seq)
446446
remaining = icsk->icsk_rto - usecs_to_jiffies(delta_us);
447447

448448
if (remaining > 0) {
449-
inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
450-
remaining, TCP_RTO_MAX);
449+
tcp_reset_xmit_timer(sk, ICSK_TIME_RETRANS, remaining, false);
451450
} else {
452451
/* RTO revert clocked out retransmission.
453452
* Will retransmit now.

net/ipv4/tcp_output.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3945,8 +3945,8 @@ int tcp_connect(struct sock *sk)
39453945
TCP_INC_STATS(sock_net(sk), TCP_MIB_ACTIVEOPENS);
39463946

39473947
/* Timer for repeating the SYN until an answer. */
3948-
inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
3949-
inet_csk(sk)->icsk_rto, TCP_RTO_MAX);
3948+
tcp_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
3949+
inet_csk(sk)->icsk_rto, false);
39503950
return 0;
39513951
}
39523952
EXPORT_SYMBOL(tcp_connect);
@@ -4031,7 +4031,7 @@ void __tcp_send_ack(struct sock *sk, u32 rcv_nxt)
40314031
icsk->icsk_ack.retry++;
40324032
inet_csk_schedule_ack(sk);
40334033
icsk->icsk_ack.ato = TCP_ATO_MIN;
4034-
inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK, delay, TCP_RTO_MAX);
4034+
tcp_reset_xmit_timer(sk, ICSK_TIME_DACK, delay, false);
40354035
return;
40364036
}
40374037

net/ipv4/tcp_timer.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -447,8 +447,8 @@ static void tcp_fastopen_synack_timer(struct sock *sk, struct request_sock *req)
447447
icsk->icsk_retransmits++;
448448
if (!tp->retrans_stamp)
449449
tp->retrans_stamp = tcp_time_stamp(tp);
450-
inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
451-
TCP_TIMEOUT_INIT << req->num_timeout, TCP_RTO_MAX);
450+
tcp_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
451+
TCP_TIMEOUT_INIT << req->num_timeout, false);
452452
}
453453

454454
static bool tcp_rtx_probe0_timed_out(const struct sock *sk,
@@ -588,9 +588,9 @@ void tcp_retransmit_timer(struct sock *sk)
588588
/* Retransmission failed because of local congestion,
589589
* Let senders fight for local resources conservatively.
590590
*/
591-
inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
592-
TCP_RESOURCE_PROBE_INTERVAL,
593-
TCP_RTO_MAX);
591+
tcp_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
592+
TCP_RESOURCE_PROBE_INTERVAL,
593+
false);
594594
goto out;
595595
}
596596

@@ -633,8 +633,8 @@ void tcp_retransmit_timer(struct sock *sk)
633633
/* Use normal (exponential) backoff */
634634
icsk->icsk_rto = min(icsk->icsk_rto << 1, TCP_RTO_MAX);
635635
}
636-
inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
637-
tcp_clamp_rto_to_user_timeout(sk), TCP_RTO_MAX);
636+
tcp_reset_xmit_timer(sk, ICSK_TIME_RETRANS,
637+
tcp_clamp_rto_to_user_timeout(sk), false);
638638
if (retransmits_timed_out(sk, READ_ONCE(net->ipv4.sysctl_tcp_retries1) + 1, 0))
639639
__sk_dst_reset(sk);
640640

0 commit comments

Comments
 (0)