From nobody Wed Sep 30 19:25:10 2026 X-Original-To: dev-commits-src-main@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 4hw4kZ3GTBz6v45b for ; Wed, 30 Sep 2026 19:25:10 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hw4kZ1s1lz4L2y for ; Wed, 30 Sep 2026 19:25:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790796310; 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=hS321L4O5qR6qVQGlpPVA+89unT77BLbdCIbA7t/Znc=; b=A2yM0bBMw4yJGSA3C4NtQrsvUB5wHgad0jS/Iy+nZbVwinhFaF28UzGlBYYenXKHrer8/s jFkr7V2KkhOYamifmWVDhj8d7zl4OBxvDYTKVbc0fnGYw5cnxLJYQDPFuAbw0G54dMhvPk ibatc3nm0aY1xH90WXEkEcIAgT7qBalBpiRHFRTLYtZdeuh2GeDNd3Qhm3lXypFe+dAXro MOVuhLm7z/jXrF6gmtJsy9bx8UQP+BwSf77GNJM7FvdMx05Dr59hPhDF4tU7rKQuQ7QwRU 5OmP29M3A/rhPK0WCt2C8yXS/GGDiuaetLqNE1pVQs+U7CUjL6FA8WW8AcJ+WQ== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1790796310; b=GY9fHZ8a07aHXGEczNkYpegqvdlXx9DieGhRa5SdkmME751KXyGzPF3jUjNVyZq8eM4DaZ ZyHAVPUr8kvlaSVWt8IbNUFdlcatKTBsaKUNcMmCic+F6+poBbcKxPAVIk9LXoGohHWZPR 0f3T5gKm15zF952gDQQPQFpeyGqUAOT2VXj4V/awXBEwBfvau6UTVjDAnsORgEFtOR9zOE IebK7FL6XXDzDqCapcspjTqFnQ5nU2GeHgAb7NIWwLuXPoGVE8ZxsI7R9qpdCfKhWPvyPC amfApETUdvhspq1TkmW607FNvuJlMyviW0G9mdlwwfHOw8VUfD5B0vhmtJ4Pqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1790796310; 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=hS321L4O5qR6qVQGlpPVA+89unT77BLbdCIbA7t/Znc=; b=mPjHKfc4g0PiNLya2fVlD7B0cD4MDBAMQ26Rxjd61lzXQbMezzSW/FHv7XNiYGKqHzMdeI YjyHzA4oYCH9F6dHF5zwYGx6r7JOKIVFwyqOwMVQ5qBukelG0Aaqr00SjquVmUnIO6EJhv enC+UTC/F+TGyDTGbLtPr4la++2oCcBb43Q4ib0+sw+qFhS3nKTa6IX643Y0tv9z8KjJ1O ZeGpRFK0u9KOv5/Ka0aEa+IdnOrOtGnSH6a1Cq7nw2TlSszM59/evB4zJiAejizIX+5Ivs t03Xx/BX+BQzII9lwAo3grmiOXo5IgtsGpI2F+WqAphwKY6GLyPXxxaTetnwng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hw4kZ0l2Szymq for ; Wed, 30 Sep 2026 19:25:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22248 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 30 Sep 2026 19:25:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 6d587ff04b71 - main - cxgbe: Don't cache nsegs for KTLS requests List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6d587ff04b71cb82a1e98fd84b5e0257dd65fec9 Auto-Submitted: auto-generated Date: Wed, 30 Sep 2026 19:25:10 +0000 Message-Id: <6abd6216.22248.7314ae4e@gitrepo.freebsd.org> The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=6d587ff04b71cb82a1e98fd84b5e0257dd65fec9 commit 6d587ff04b71cb82a1e98fd84b5e0257dd65fec9 Author: John Baldwin AuthorDate: 2026-09-30 19:19:11 +0000 Commit: John Baldwin CommitDate: 2026-09-30 19:19:11 +0000 cxgbe: Don't cache nsegs for KTLS requests KTLS mbufs are initially parsed when they are first enqueued to estimate the number of transmit descriptors needed so that the mbuf is queued until enough descriptors are available. As part of this estimate, the number of DSGL segments required by each KTLS mbuf is calculated. Originally, the count for the first TLS record in a chain was cached in the header mbuf to avoid having to recalculate it when writing out the actual work request for the first TLS record, but this requires duplicating fairly complex logic both when parsing and transmitting requests. Sponsored by: Chelsio Communications --- sys/dev/cxgbe/crypto/t7_kern_tls.c | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/sys/dev/cxgbe/crypto/t7_kern_tls.c b/sys/dev/cxgbe/crypto/t7_kern_tls.c index a539a6793f16..3ba4c47235f1 100644 --- a/sys/dev/cxgbe/crypto/t7_kern_tls.c +++ b/sys/dev/cxgbe/crypto/t7_kern_tls.c @@ -854,7 +854,6 @@ t7_ktls_parse_pkt(struct mbuf *m) MPASS(m->m_next->m_flags & M_EXTPG); tot_len = 0; - nsegs = -1; /* * Each of the remaining mbufs in the chain should reference a @@ -871,13 +870,6 @@ t7_ktls_parse_pkt(struct mbuf *m) if (wr_len > SGE_MAX_WR_LEN || nsegs > TX_SGL_SEGS) return (EFBIG); tot_len += roundup2(wr_len, EQ_ESIZE); - - /* - * Store 'nsegs' for the first TLS record in the - * header mbuf's metadata. - */ - if (m_tls == m->m_next) - set_mbuf_nsegs(m, nsegs); } MPASS(tot_len != 0); @@ -891,9 +883,9 @@ t7_ktls_parse_pkt(struct mbuf *m) if (error == 0) { #ifdef VERBOSE_TRACES CTR(KTR_CXGBE, - "%s: %p len16 %d nsegs %d TCP seq %u deferred", + "%s: %p len16 %d TCP seq %u deferred", __func__, tlsp, mbuf_len16(m), - nsegs, ntohl(tcp->th_seq)); + ntohl(tcp->th_seq)); #endif } TXQ_UNLOCK(tlsp->txq); @@ -904,8 +896,7 @@ t7_ktls_parse_pkt(struct mbuf *m) } #ifdef VERBOSE_TRACES - CTR(KTR_CXGBE, "%s: %p len16 %d nsegs %d", __func__, tlsp, - mbuf_len16(m), nsegs); + CTR(KTR_CXGBE, "%s: %p len16 %d", __func__, tlsp, mbuf_len16(m)); #endif items[0] = m; error = mp_ring_enqueue(tlsp->txq->r, items, 1, 256); @@ -1461,16 +1452,8 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq *txq, #endif } - /* - * Use cached value for first record in chain if not using - * partial GCM mode. ktls_parse_pkt() calculates nsegs based - * on send_partial_ghash being false. - */ - if (m->m_next == m_tls && !send_partial_ghash) - nsegs = mbuf_nsegs(m); - else - nsegs = sglist_count_mbuf_epg(m_tls, - m_tls->m_epg_hdrlen + offset, plen); + nsegs = sglist_count_mbuf_epg(m_tls, m_tls->m_epg_hdrlen + offset, + plen); /* Determine if we need an LSO header. */ need_lso = (m_tls->m_len > mss);