From nobody Tue Jul 28 20:24:04 2026 X-Original-To: dev-commits-src-all@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 4h8n443zcgz6nFb9 for ; Tue, 28 Jul 2026 20:24:04 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4h8n44329sz3GfF for ; Tue, 28 Jul 2026 20:24:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785270244; 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=waTV53zZdJVQbz5ZAMyFJ0cOhTN6nhjWZLkOoSQnyjM=; b=qTu0yeE0/tJiLww06ZX6vk4XpG0lppTFoFFuJ9yScUz/mDx4yiUBRtX7jC21suPd34iSqp Y7VdPAMO1vBeGN4WubZfnF8BxQXdOzFy9izErJ2uF8UDFuX9l209PSBoiXEpS0NwMT3+3U Gwkc2IqR9ko51p924prqQcYSWslwPjF9A/szs8VIB86neAzEClkOg/mfAlnq8C+GYCzAhH X369SIFUh0GAJa7EEmXP83eTad6A/S3NkKVyIISD3ds8aZaTnX8rL4c+l5LRFYumLC0SJV LLzAWGZWsC3JiLYMn++BzhmfxvmavGrInIXMGSQVqJ7k/WasScNjDgERxbqb5w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1785270244; a=rsa-sha256; cv=none; b=D+8ei1YDeqUkkwZtnY6DsQVm+536ykBrvt9+Ux+Pp00AbaERvaaDM6R+smiPF50AobfFt7 pl66cxmly81yxaURySVvuIeyklZgeHko4yheY2K0bzkC6owWHOIeISlAMOw0maT/v731HZ gD2Oygj3eyguO2QwS+y0MSCaIEfBh3Ckr9MxogUgtaJmPzCWdOiPk8iqHHhTz01XM5/ZEY 072Ze5Yp9ipmRYgPos48WZwfHX2K8k05g3VM5+Er74oVMKNQLP4KtR7sS/DkdoaYD/cUJA K3uThBR36t/FvGB5/aUGtqvgYYT2OdyE4Pjw7pjrhH/ETKMtd6h4xyopDXWmCQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785270244; 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=waTV53zZdJVQbz5ZAMyFJ0cOhTN6nhjWZLkOoSQnyjM=; b=qxWLz2BptR5Xo+r9vqtuN7UmMIfXuuaPTWho5K2CrzW/Am88O3C1HJ5JU67XXDTzNQSqZU ORZiTZ/A6L8zbiV4eTzIIbIxZcUw2hd9xFYUBllXRgZESVa1Cq8vOb1JIfyi9I1WnqKv0K C+UF7Tl/uePoFOydFDkVkAyth9kPyuyRVvp1yuxLaLJry6rqms+11BLhdnEorUFE+ZEDVj 34Pm2lOMow0Q6+5oAR+CWSvHuvsR/zGwTLzRx0wsea0nkFl1BX97k1flW+fOF6gCuM2Fcs 91Z5UpCi3Ru4ENZsis1N8cMPSbYsDTRzSBrQHFR7Z4UId9IQGK6x7nm7RIR1zw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h8n441sTszvmd for ; Tue, 28 Jul 2026 20:24:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 474cd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 28 Jul 2026 20:24:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michael Tuexen Subject: git: 52b7cbcb78c1 - main - tcp: improve handling of stopped timers List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: 52b7cbcb78c14e89f6faec8da5acc2caa3d37208 Auto-Submitted: auto-generated Date: Tue, 28 Jul 2026 20:24:04 +0000 Message-Id: <6a690fe4.474cd.3f45cf@gitrepo.freebsd.org> The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=52b7cbcb78c14e89f6faec8da5acc2caa3d37208 commit 52b7cbcb78c14e89f6faec8da5acc2caa3d37208 Author: Michael Tuexen AuthorDate: 2026-07-28 20:15:22 +0000 Commit: Michael Tuexen CommitDate: 2026-07-28 20:15:22 +0000 tcp: improve handling of stopped timers When a TCP timer is stopped, t_timers[] is set to SBT_MAX. Adding the corresponding t_precisions[], if it is not zero, would result in overflows in tcp_timer_next(). To avoid this, skip stopped timers. The problem was identified while debugging uperf by Lukas Book and an initial patch was provided by him. The committed patch was suggested by glebius. The problem can be observed by running netstat -nxptcp and looking for negative timer values and by observing very long running timers in some cases. Reported by: Lukas Book Reviewed by: glebius Differential Revision: https://reviews.freebsd.org/D58484 --- sys/netinet/tcp_timer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c index ca242f2be627..57a4f3080df0 100644 --- a/sys/netinet/tcp_timer.c +++ b/sys/netinet/tcp_timer.c @@ -858,6 +858,8 @@ tcp_timer_next(struct tcpcb *tp, sbintime_t *precision) sbintime_t after, before; for (i = 0, rv = TT_N, after = before = SBT_MAX; i < TT_N; i++) { + if (tp->t_timers[i] == SBT_MAX) + continue; if (tp->t_timers[i] < after) { after = tp->t_timers[i]; rv = i;