From nobody Mon Jun 16 20:29:15 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 4bLhRw1yQdz5yND4; Mon, 16 Jun 2025 20:29:16 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bLhRw0t1jz3NlJ; Mon, 16 Jun 2025 20:29:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750105756; 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=Ws46QgHEe4Kfc4a/XEIwqEMJdWaV2a3EqeiT57Aco6U=; b=RrM0iBFXfbi9Y4V59am6pGAiNONMGS0W4WG43Li/DVY3V//yseCe7MUbGMAagbE2/15ol7 CKv6WQOnT83hAtWi2IvonMWSFQp3nSwse62zCp4UTIgMosJTrkoUc9ROh+7MWfBPrBJqym T57GgAwgq0XtgObTOf3wCo3I79uZKUyeO6eTq+Nbpx7ateRrGO9v+M7cJD9QZeLncfAZxa dLFp1yaqaOEVeAtdJ6JRJ5jczfS6NXuZk07hCmACEX5slyVTDC0sk8fkyyFGqBN69OJDLt iv7nl82OrzvV/nY8NuYPecG2zfdB7Heu0Zur5Qr2gg8ySMVdnGA4G4PYxQ2bXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750105756; 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=Ws46QgHEe4Kfc4a/XEIwqEMJdWaV2a3EqeiT57Aco6U=; b=L/WmArsVt+KyW+nBENs+f9EkfRd7BJL8BHU2w68BWDYH7UJ02B2vnljg0kDnjuAkD9t/94 kABlk0Etx06tcR6F/agu0TTnUAhEZ6+vC/hmknWwwV+mirNOMdKl5Cv9Lkf+T3LgK1Ta6s udz8Yj2jpuHXKeILhnsw2I28dMeTPFK8XD7W4Uzb4+RFMnYdZoCK/hG7KoCHme+DbQLO9U wsuGQh0HyIji0BtPv4iI5XArjUwLulrdIBt66uNZUlN7HDYHzQFQ8CmEKj7a2m6v5JZqFS mvmIlqFfD0k67cMYneqD8auznfutt523kYCUahcstSOqGwqSmwxk2e2dUsoCqA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1750105756; a=rsa-sha256; cv=none; b=tOan6YJG2KGaHw/Hktci2Syp7g9s/FfXGRXRynny43sDAdJ5fyOLe/RqqyqQRhcGC6KX4m AXMt3I6ee4gcnJiwxofiDr9gQCHJVUEJywvlMJMuc1VV5vuYLuNz3AfVAy2YkIKAEIBFd3 SbuvOPxG73KQ51TwYkzvtV3JCMniExEwYakwZlKPu/c6vVQ82yrytG6ESJLOeVkP5D6RT8 TKAmrRED5w0WYkVA/wRKp7TgPo2cQJx83G6Q/cOtnBs2mjGIcXr/0JOguIMmG4u73kHP1C HuWCasEP8ut/hKe3hcWTtJOjv+x6bM9ydj59qSno8KyA6tACJ5vpnrF6llNbLA== 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 4bLhRw0QXbz1BgG; Mon, 16 Jun 2025 20:29:16 +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 55GKTF1q041886; Mon, 16 Jun 2025 20:29:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55GKTFgh041883; Mon, 16 Jun 2025 20:29:15 GMT (envelope-from git) Date: Mon, 16 Jun 2025 20:29:15 GMT Message-Id: <202506162029.55GKTFgh041883@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: c13f4b1574da - 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: c13f4b1574da77f89ab57cfcc87fe8ad80f25263 Auto-Submitted: auto-generated The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=c13f4b1574da77f89ab57cfcc87fe8ad80f25263 commit c13f4b1574da77f89ab57cfcc87fe8ad80f25263 Author: Michael Tuexen AuthorDate: 2025-06-16 13:04:05 +0000 Commit: Michael Tuexen 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