Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Jun 2025 20:29:15 GMT
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: c13f4b1574da - main - tcp: cleanup timer initialisations
Message-ID:  <202506162029.55GKTFgh041883@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by tuexen:

URL: https://cgit.FreeBSD.org/src/commit/?id=c13f4b1574da77f89ab57cfcc87fe8ad80f25263

commit c13f4b1574da77f89ab57cfcc87fe8ad80f25263
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2025-06-16 13:04:05 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2025-06-16 13:04:05 +0000

    tcp: cleanup timer initialisations
    
    Use MSEC_2_TICKS() to make clearer, which values are used and to
    ensure that the value stored is at least one tick.
    This also avoids the need of some protection code.
    
    Reviewed by:            cc, glebius
    Sponsored by:           Netflix, Inc.
    Differential Revision:  https://reviews.freebsd.org/D50840
---
 sys/netinet/tcp_subr.c  |  4 ----
 sys/netinet/tcp_timer.h | 24 ++++++++++++------------
 2 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index f766bf25ad66..d82a54031a95 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -1473,11 +1473,7 @@ tcp_init(void *arg __unused)
 	tcp_keepintvl = TCPTV_KEEPINTVL;
 	tcp_maxpersistidle = TCPTV_KEEP_IDLE;
 	tcp_rexmit_initial = TCPTV_RTOBASE;
-	if (tcp_rexmit_initial < 1)
-		tcp_rexmit_initial = 1;
 	tcp_rexmit_min = TCPTV_MIN;
-	if (tcp_rexmit_min < 1)
-		tcp_rexmit_min = 1;
 	tcp_persmin = TCPTV_PERSMIN;
 	tcp_persmax = TCPTV_PERSMAX;
 	tcp_rexmit_slop = TCPTV_CPU_VAR;
diff --git a/sys/netinet/tcp_timer.h b/sys/netinet/tcp_timer.h
index a3ca268417ba..8e1c609fd575 100644
--- a/sys/netinet/tcp_timer.h
+++ b/sys/netinet/tcp_timer.h
@@ -71,21 +71,21 @@
 /*
  * Time constants.
  */
-#define	TCPTV_MSL	( 30*hz)		/* max seg lifetime (hah!) */
+#define	TCPTV_MSL	MSEC_2_TICKS(30000)	/* max seg lifetime (hah!) */
 #define	TCPTV_SRTTBASE	0			/* base roundtrip time;
 						   if 0, no idea yet */
-#define	TCPTV_RTOBASE	(  1*hz)		/* assumed RTO if no info */
+#define	TCPTV_RTOBASE	MSEC_2_TICKS(1000)	/* assumed RTO if no info */
 
-#define	TCPTV_PERSMIN	(  5*hz)		/* minimum persist interval */
-#define	TCPTV_PERSMAX	( 60*hz)		/* maximum persist interval */
+#define	TCPTV_PERSMIN	MSEC_2_TICKS(5000)	/* minimum persist interval */
+#define	TCPTV_PERSMAX	MSEC_2_TICKS(60000)	/* maximum persist interval */
 
-#define	TCPTV_KEEP_INIT	( 75*hz)		/* initial connect keepalive */
-#define	TCPTV_KEEP_IDLE	(120*60*hz)		/* dflt time before probing */
-#define	TCPTV_KEEPINTVL	( 75*hz)		/* default probe interval */
+#define	TCPTV_KEEP_INIT	MSEC_2_TICKS(75000)	/* initial connect keepalive */
+#define	TCPTV_KEEP_IDLE	MSEC_2_TICKS(120*60*1000)	/* dflt time before probing */
+#define	TCPTV_KEEPINTVL	MSEC_2_TICKS(75000)	/* default probe interval */
 #define	TCPTV_KEEPCNT	8			/* max probes before drop */
 #define	TCPTV_MAXUNACKTIME	0		/* max time without making progress */
 
-#define TCPTV_FINWAIT2_TIMEOUT (60*hz)         /* FIN_WAIT_2 timeout if no receiver */
+#define TCPTV_FINWAIT2_TIMEOUT	MSEC_2_TICKS(60000)	/* FIN_WAIT_2 timeout if no receiver */
 
 /*
  * Minimum retransmit timer is 3 ticks, for algorithmic stability.
@@ -107,15 +107,15 @@
  * The prior minimum of 1*hz (1 second) badly breaks throughput on any
  * networks faster then a modem that has minor (e.g. 1%) packet loss.
  */
-#define	TCPTV_MIN	( hz/33 )		/* minimum allowable value */
-#define TCPTV_CPU_VAR	( hz/5 )		/* cpu variance allowed (200ms) */
-#define	TCPTV_REXMTMAX	( 64*hz)		/* max allowable REXMT value */
+#define	TCPTV_MIN	MSEC_2_TICKS(30)	/* minimum allowable value */
+#define	TCPTV_CPU_VAR	MSEC_2_TICKS(200)	/* cpu variance allowed (200ms) */
+#define	TCPTV_REXMTMAX	MSEC_2_TICKS(64000)	/* max allowable REXMT value */
 
 #define TCPTV_TWTRUNC	8			/* RTO factor to truncate TW */
 
 #define	TCP_MAXRXTSHIFT	12			/* maximum retransmits */
 
-#define	TCPTV_DELACK	( hz/25 )		/* 40ms timeout */
+#define	TCPTV_DELACK	MSEC_2_TICKS(40)	/* 40ms timeout */
 
 /*
  * If we exceed this number of retransmits for a single segment, we'll consider



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202506162029.55GKTFgh041883>