From nobody Thu Aug 6 09:08:12 2026 X-Original-To: dev-commits-src-branches@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 4hG1f51Jdnz6mh0n for ; Thu, 06 Aug 2026 09:08:13 +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 4hG1f50qH1z3Yt4 for ; Thu, 06 Aug 2026 09:08:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786007293; 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=pRc+c5g9xa7sTp2xxSiJriWHtnu7hoyRDNTAZKa7owM=; b=URpamZ/1JEamEZ1xFshFZSsbcNYLHetX9QVnX9bD+O0R1WeBncsC/D7qQxAjgJ1B6aOYJr sxuQ/wQ1pLzT+cvZe+nvIZDULC1jN/HxB5b24W1nNFbcrUYGzAYXLMwBa3hBIhI6eQzlRV WoMHFcCKwKE6IVWt3KoH3iu7fEAwHF5tzqfOfbVW3S4NbIs5sCev5Oem8YAWZtZb7I2wSD 8oLiMAkbMGia1OA86cOJXJmbvANmhDGRCCVEPhsdD1ak3qe+nUL8e1DFkVkb/gY3/Yt6+P vwMvE8eC5yrzcwNy3m79BSCLNVmtiwiW/v1P8dybFFjg03AaCbQUnY+pGP919w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786007293; a=rsa-sha256; cv=none; b=QOu/H1Re7kU3LjxslnVyVRPu3goM2HU+GFU0VxOyCPYTvd1j8vvifdhph3v7qCKWdiyHJo 7oMOTFF8eNeeScUTFGm9O9sfP8dTWrKSWwQCp2VhCo9V3I0DJXsiVPubKx8RdJSWd3zIEl nejP0Bcy+NORRnRbCyCsgGUJa0gzg92zGkxn1Rjc1EJsO/82vPC3fzGd+Skp0DlrEQxpDP 9w9e1a2mpwb16dcOyWt+o4X1oRioymdfjpFQzIDJS0H1+W+MvjmMKTYIQMkG2yvP72V8f+ 1185aTrJYq75ZxYJ2JOj1BcarggCRUC/oFJtpadaZ5uf4VW54aOIFMX/ShgGtQ== 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=1786007293; 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=pRc+c5g9xa7sTp2xxSiJriWHtnu7hoyRDNTAZKa7owM=; b=I5e3NzWSrEqkr5yOg9yAYGEMv58goMOVUR7tXn4NaUSsfirz/rpe0TlfWs1UZnikUmziO9 zhxQp60w/a1FKReiPX+bGZP8xWb05vGm6p3Wd1mRpPbkk4nBIAg0n/tf45TdQfqWMn0k2c HalIVwCVB9LmEoeCMXNpUrR66q7vNKwMCcdNULionr3ZPVD07Re6qyiknK2wBez/3YTyTc ppCs1weuYhULQUBx4XwzWkwQ4sevt4XntE4NbHvv4pcsX8yl3oyrn1SZB4Msn20K8SC6Ba k8cnxBCbTkf61fMkIzxPfHrDVhFgyRq6EWd9nnDl9QhXvMO1bn46PSoWJX4YBA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hG1f46wtKz1CtY for ; Thu, 06 Aug 2026 09:08:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18fba by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 06 Aug 2026 09:08:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: e8d1cee43741 - stable/15 - tcp: improve handling of stopped timers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: e8d1cee437414dd9bb3c779ff0a0c234fb7d411e Auto-Submitted: auto-generated Date: Thu, 06 Aug 2026 09:08:12 +0000 Message-Id: <6a744efc.18fba.394b020f@gitrepo.freebsd.org> The branch stable/15 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=e8d1cee437414dd9bb3c779ff0a0c234fb7d411e commit e8d1cee437414dd9bb3c779ff0a0c234fb7d411e Author: Michael Tuexen AuthorDate: 2026-07-28 20:15:22 +0000 Commit: Michael Tuexen CommitDate: 2026-08-06 09:07:02 +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 (cherry picked from commit 52b7cbcb78c14e89f6faec8da5acc2caa3d37208) --- 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 57c57666fa3a..56c50faaf4d1 100644 --- a/sys/netinet/tcp_timer.c +++ b/sys/netinet/tcp_timer.c @@ -859,6 +859,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;