From nobody Thu Jun 26 16:55:32 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bSlDh5m0Gz60m92; Thu, 26 Jun 2025 16:55:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bSlDh4k53z44tn; Thu, 26 Jun 2025 16:55:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750956932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4XROOmuInP6ZEzXDecw+ZKCB19WJZCmdl0hUYKnpQ8A=; b=sH2TwQoWp9xaVVpDtuCjajRAwfFkTQO0yjjP4UkJTB3aUaHCYqsY9M6zFV0YwI+W+KYqkP qR+h5QKHKfQ0xzxdc439idO1n5Hahnpp5YxsctDV+IZl/EqoEIivhpRvvLu6DH2n97jec3 hHgPVTCraJk4Ppdi32jCcGvj18v1mjVwGrCtnh19K3/yr4hdSu0GDvqHpJL3IYDNElb1v8 RSgkphE3+/pX6ifxyLEwHzUyCi68veLvSHeRaxPV3I3qos0qGJ22sDDUYMyAjUAH8Xl8Rk GGOjB9GY9YsBJBnFz0blyYQlD3tf/ZEsTd4oxPQ8JT6YnCfdxcuWfM50xgUg5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750956932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4XROOmuInP6ZEzXDecw+ZKCB19WJZCmdl0hUYKnpQ8A=; b=xG3TwhJGftLp5GT21OIOpWU+i6CJgsW7/tgWJXm1fqEJkgSazUd+hz2x5G366md1YSs5sZ sjPrL6oYKon2vf0UJJ1ERjl4Hn5YE7hVXslGghzWB44p5L7L2SrkBNcmE2YkXVLXVMCXTu 9YU0P6zL1YEBKsArKOmFW0XhtzM5snOOay4eNaWMn3E6nyA5/WOLRiKwMxDUctlO/9xp8r MNpEcK3R7GFCzhhVyGi39z1PRlmfVzduLesGO48i0/gd8hHHR69a+pcF6INcvtBLuDwJ33 LYRC1MjEyS/GLOYehhlDIela99LWXDbSAo0p79WKVQ1iy1nV2o/vD48GojPWaA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1750956932; a=rsa-sha256; cv=none; b=ItZ4g06kaYzSvLrvFzc6qfe1d0x6/GDtZF4oyO58z1IuDhBp7uhWsGLyqxx+0xcq15y1b3 OXdkYF4O56kW8+IF7gxHk5icQpzuw94KYcEhY/2rq8UqywyteNmTGVajtKqAXprY84Iv7S EC5J0jyNE6S9H/bDbuDNh9kpjroqV/0738cnzm+9s2sCBLaEIlOF/oEKmNDGRQ/z24+tWB Vd2hAHE02ipuEwunl+B8OBhaas/ep2+M1QJ7BEesDD6I4XFuF17JCbjNiKddcGFClwhblu JjJDMdxMZ8ST19Dq3nuRt6LNKkYWjFcy3sZMTzkbvEJYYqPj/BdjirT3AndrMQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bSlDh3pyhz19Lh; Thu, 26 Jun 2025 16:55:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 55QGtWk8040899; Thu, 26 Jun 2025 16:55:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55QGtW2I040896; Thu, 26 Jun 2025 16:55:32 GMT (envelope-from git) Date: Thu, 26 Jun 2025 16:55:32 GMT Message-Id: <202506261655.55QGtW2I040896@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michael Tuexen Subject: git: 0b33b25b1403 - main - tcp: cleanup timer initialisations List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0b33b25b14033f738995c0a1fdcfd1f695afd6f2 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=0b33b25b14033f738995c0a1fdcfd1f695afd6f2 commit 0b33b25b14033f738995c0a1fdcfd1f695afd6f2 Author: Michael Tuexen AuthorDate: 2025-06-26 16:52:59 +0000 Commit: Michael Tuexen CommitDate: 2025-06-26 16:55:27 +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: glebius, cc 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 4542c5ccb8bb..6b1907305fb9 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -1474,11 +1474,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_rexmit_max = TCPTV_REXMTMAX; tcp_persmin = TCPTV_PERSMIN; tcp_persmax = TCPTV_PERSMAX; diff --git a/sys/netinet/tcp_timer.h b/sys/netinet/tcp_timer.h index a145782ba82d..394207bcb89b 100644 --- a/sys/netinet/tcp_timer.h +++ b/sys/netinet/tcp_timer.h @@ -73,21 +73,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. @@ -109,13 +109,13 @@ * 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 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