From nobody Fri Sep 5 17:34:44 2025 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 4cJNl929GHz65tHN; Fri, 05 Sep 2025 17:34:45 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cJNl91TZxz4GCh; Fri, 05 Sep 2025 17:34:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1757093685; 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=LLSifpMO4Dmr4uQmV04QrQOH8j4aQAfenhEi4pEBX+w=; b=edQyIBLxZNrSV2TsleIn8CljWbWTTsLYUyTraYDdzH1QEPiNytX3gKLp3fogFOerZrDX3H CL5G1xeu+wLcIMjvrbWeiP2P6h39DEu9mcGpIN702seDiT9BwOl+HBG/5okDvQS61nh/fu lnYTDhrbMQiyxzv+RwN2GmJdFzUtkhVhDBmlbHQrBZMfojuv48wVj38thfeb8nDlNsaJRv 807mfiCObHWqHl+ypycewj5dPEFxRUoD6KqXHQBsyEd5EV7xxkiI/t/XDUQ3I/xiTJI9QR X5zywnx6Bg0KS0zpufAjA9y1709GGPPXUgsEQZ9kaAtAXqpqkUHnUnBxVkrvaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1757093685; 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=LLSifpMO4Dmr4uQmV04QrQOH8j4aQAfenhEi4pEBX+w=; b=bycYfRP+DUkX+0N25aSfY8RzrOzGGsMQQA99DAih9aaTaeoJnq25SHYHdYBKLJEt2phj+L 9oS4FogludXKuHTlefcWWgTtVzc0st5GBflR5DpDMfJRyAnic4KvuGQOJWIMcRAr26Z4mW JfxHsPJtP3L6DUdjB45CRgxyIWEdilK6uIZprse20jz9XdpCVcyo41g2WSeYcqVlqHCCCv vIbJLXZpaa386Z6xJTa/Pzq95P97dJoYgn8+y0jZibQ98t/3mlATI8yajS3uacFGg66dzH rXbesqATquD0fdEv7rZF083khBjjAZtcb66SPaYYby6gyXrWOPS93WR3vBU9Sg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1757093685; a=rsa-sha256; cv=none; b=t6cavY0scnR2lEHEkAuDj0Ksblrlo/gjqESgZyM1KHtWMbPfQTaTTMiXnZRSAWWCdzpagB Ca08d6wgor0PksMA2uWc7TW8+illRscf4JKzh5BqZRo8+Yhtwp36jn3MTQSKYRuRv6EFtT oZimM490zYnh5WkIUujkyHcVKdU0L51OZMBjZR1C409Fh1PMSP/4B0QCubWfqyWW3CGNmk iSquLgbYvm6tGQN8fXyybaDamVr9/o/xQNqsGy0gZ/kJR9zYVSxxd7X2PS33/F4p/N7HaY loBb0G3O0UaDC0of/V0T+6Kszt4EEyCckU1vCkYsXRMDnJw57JYMHz+WEg5Wsw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cJNl90vQMzyP4; Fri, 05 Sep 2025 17:34:45 +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 585HYjIx065394; Fri, 5 Sep 2025 17:34:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 585HYicT065391; Fri, 5 Sep 2025 17:34:44 GMT (envelope-from git) Date: Fri, 5 Sep 2025 17:34:44 GMT Message-Id: <202509051734.585HYicT065391@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 9f6942484963 - stable/14 - tcp rack: fix sendmap app limited count tracking 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 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: 9f6942484963cb9f45b141eec89c5d9f1ed5db92 Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=9f6942484963cb9f45b141eec89c5d9f1ed5db92 commit 9f6942484963cb9f45b141eec89c5d9f1ed5db92 Author: Peter Lei AuthorDate: 2025-07-21 07:56:03 +0000 Commit: Michael Tuexen CommitDate: 2025-09-05 13:28:21 +0000 tcp rack: fix sendmap app limited count tracking rc_app_limited_cnt is an internal counter on the rack structure that tracks the number of sendmap entries that have the RACK_APP_LIMITED flag set. These entries gate goodput measurements. The counter is reported in a number of blackbox logging events. When a sendmap entry which has the RACK_APP_LIMITED flag set is cloned, the counter was not being maintained properly. While here, cleanup the counter check when a sendmap entry with the flag set is freed which previously hid this issue. Reviewed by: tuexen Sponsored by: Netflix, Inc. (cherry picked from commit e0838f8a2e61e73e37c1ae08eab9473daacaacb8) --- sys/netinet/tcp_stacks/rack.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c index f90b747cc2e4..e7226a5bcf87 100644 --- a/sys/netinet/tcp_stacks/rack.c +++ b/sys/netinet/tcp_stacks/rack.c @@ -3468,9 +3468,9 @@ static void rack_free(struct tcp_rack *rack, struct rack_sendmap *rsm) { if (rsm->r_flags & RACK_APP_LIMITED) { - if (rack->r_ctl.rc_app_limited_cnt > 0) { - rack->r_ctl.rc_app_limited_cnt--; - } + KASSERT((rack->r_ctl.rc_app_limited_cnt > 0), + ("app_cnt %u, rsm %p", rack->r_ctl.rc_app_limited_cnt, rsm)); + rack->r_ctl.rc_app_limited_cnt--; } if (rsm->r_limit_type) { /* currently there is only one limit type */ @@ -7208,6 +7208,9 @@ rack_clone_rsm(struct tcp_rack *rack, struct rack_sendmap *nrsm, /* Push bit must go to the right edge as well */ if (rsm->r_flags & RACK_HAD_PUSH) rsm->r_flags &= ~RACK_HAD_PUSH; + /* Update the count if app limited */ + if (nrsm->r_flags & RACK_APP_LIMITED) + rack->r_ctl.rc_app_limited_cnt++; /* Clone over the state of the hw_tls flag */ nrsm->r_hw_tls = rsm->r_hw_tls; /*