From nobody Thu Aug 6 08:32:44 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 4hG0s85ZLYz6mcgr for ; Thu, 06 Aug 2026 08:32:44 +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 4hG0s84vkPz3QdX for ; Thu, 06 Aug 2026 08:32:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786005164; 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=ghTVZj2i9zs4y+vrD/AVGpuTu4Z9+lL8bvh1Wqd5CfESE2vN9uiPsBfxA2yXGu26Z8MyKr XgaAh+fS9tBBvFFuKhMss+mzvD4nnVoVD5/MIdcWfAZYNToObej3Da6Fym+93qlptpCY3K L9OQbaMZ02X3+bgnFgqwrtloNUJM/8TlN5GKjJppQfN3+kvIENIEMkhbfONA1nkfsSTZ45 hAAkZHsc8xYo1kjhtOgichWrQ8/nmmp5H8OYMBuznu3dzw1pzZj2QBcYMNL70eNeSBOJqu /0z0AZZ+1ckddhnVfzgRbw4Mj60/vX0H4zjxikO5VW67JI1QA+oU0P/yY5Cr4Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786005164; a=rsa-sha256; cv=none; b=TWt3XUEeCTf0Vc8LPKAp5Rz9C/yTCDcoWoH1Y2MwwXUcZcHx8YK69jdm/H/gTp8qUPFSfy 6cCsSMX+T4sArOcu6hO1S8inXhZ3LOOLdq0mfdGQUU1XkywzvsT3Kb1hr2/DQTcKnHsRXD CRMD5J4sTyEptsO8/L/782Y5LQ/PYvyiB4bSXdRTuK/D/Y9BuO7wBeqbXM2qnxh341LtDX GoKwlJbH01rC9l0tO3NL+Q9+zofpzyyE/hIqkO4d2euzwec9KauqZx0r9pfa2asSjA5fE9 FphRJzXu8Bvj8sdinkVAKoUfjQrQ7ewVRM1x5jiDsIVDR8yfLmoQZVXs+iGZug== 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=1786005164; 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=sBFxDwIkl4nINH5pWosXLh8dfqphfupZlQmL/4vcQ+v3BRqveoofZ0gRkVii2MOQhzLnCa JNLWYPJ9Icn2yhKImDdRYJHHpGGHJTbuPC1kNirUUHEi0lisgme/qzRIdJUtWKnL2h5GQF zSrxNH1fIaavaxOZnd9F3/Y6sTtNvmc7//zfM3p/2O8uLtYog7gEvJm6S0wKRblw6WGW0D n8C5lZy+ivb1R2B10WgpOroJXkX3o85DxUOet89jO3rIhXW+4m30awfl6G48LIvd4wg7A5 87HEoaZ0MhnivrxLKCthmz33W1BTE9rhMeE9pf3XOXR0RHuV4lN5+xhl4hl+BA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hG0s83sDbz1BXS for ; Thu, 06 Aug 2026 08:32:44 +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: 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/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;