From nobody Thu Aug 6 08:32:44 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 4hG0sG0FWNz6mcgs for ; Thu, 06 Aug 2026 08:32:50 +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 4hG0sF6jNjz3Qlf for ; Thu, 06 Aug 2026 08:32:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786005170; 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=a1LkG1AbCRnvVWHAQXcc/jk3YN34Jk/qZgtyjcDEfFE=; b=Hjvd1aNgW6+xAeqKJX/FVhoNDebIl37ZYmPtdkan1dGEOiI3QKa4wwSleWAJYwexDuDaCM 6/9a2+wTTwfHdI49kxXVOCZ2+3WiodzpCtS6RerIt3dergYekGJe1G3xwknv8AJlIQPqcZ XHg7EKvRHs4Sk8yAudzYhnyqYQz23Le/HUs4zBL8spuddkRfpCaEFl2F39BPMurgcoezaA KuOluk3t49vJG1J4PpejNIr03SaUo/MJuvCyKDlzIBJDADKBiGqnFHqVS9sRJrSxeqKNL8 elK5KFQDNjlzN3JgqllBWHB+ccCRCqjpx2VSbUgl3vuJqd1Qb411M1y8sB2wCg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786005170; a=rsa-sha256; cv=none; b=gqmNUk8GJS8giTScYNW0+gq15mzffqsrUdI5R7Qy3eVtxFE4rTzJ7q/z8Lv0vW+Zz4So+k BGjPBwpp5YtEVr55mg0vEa3qzn8XuUFhmO1alGauZCm6TKPytLUWYyG8PHlo1lc6EFa6HX wFkM0IhIGoq2nNFe5DYainslPrT1hep9ovf9MBi3yROg6YCKgXtCOMP45V29W1N0sEzif4 d5bEUZnAiNqnBaV+910Fv85ix4WIzB0fJftR1WZD6a/G1U/isF4JRGf8WNiMgYs6N1F8qt xn2GVOMYeF0LP2uoVQO3NStNYeVXHB1zW/k3GudhOfJcqGWN6iB7fvn0k32ZWA== 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=1786005170; 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=a1LkG1AbCRnvVWHAQXcc/jk3YN34Jk/qZgtyjcDEfFE=; b=lL7NwpaazfHIjDh6/jE4Gc82nRSibgTypOLBal5DTmzFRkh5VUkChDSjE6oeUR9bKjUkH3 DTKpg6+X4IZkPNA9lg5xPUdho8V6iOEYqj3jqQUJV1DQx9dC+su69PLZRbQdN1DFhilB9l YK24pYw26Rkhkj9jWfNsjdWca4wB8ZjOgkEkcz+FDbavMaI0nJlkVdaCYLLDQ26Emwy1lg SrMvf91EV6hygWt9sRIItvdBAEw6Eyf8+kEoZNLxG67BCpBOivnX4yJS+eyD/kkuKCzi9j zBW2pxMAT0gT+q+F5CN+QwQ2wz85BqMYQ5mxQWbNx5hJk4tCtZ99vMOS0cKe/Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hG0sF5jP7z1C65 for ; Thu, 06 Aug 2026 08:32:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e400 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 06 Aug 2026 08:32:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 85485a570d4f - stable/14 - 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/stable/14 X-Git-Reftype: branch X-Git-Commit: 85485a570d4f9c5f9d9b867ee847b8ee5f7d2445 Auto-Submitted: auto-generated Date: Thu, 06 Aug 2026 08:32:44 +0000 Message-Id: <6a7446ac.3e400.49f73483@gitrepo.freebsd.org> The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=85485a570d4f9c5f9d9b867ee847b8ee5f7d2445 commit 85485a570d4f9c5f9d9b867ee847b8ee5f7d2445 Author: Michael Tuexen AuthorDate: 2026-07-28 20:15:22 +0000 Commit: Michael Tuexen CommitDate: 2026-08-06 05:55:09 +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 1c687e94bb4a..5e01716e7a44 100644 --- a/sys/netinet/tcp_timer.c +++ b/sys/netinet/tcp_timer.c @@ -850,6 +850,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;