From nobody Wed Nov 12 19:42:42 2025 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 4d6DMQ5XsXz6GVfN; Wed, 12 Nov 2025 19:42:42 +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 4d6DMQ52M6z3x6v; Wed, 12 Nov 2025 19:42:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762976562; 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=KbwnlBAHbvbuN0zj8gsxJ5fZwr5/CTK3kXqDb5DSt5w=; b=eqauUCGd9TCusCleQmH72BcZUekpuYnOOJCFDT1PD2K6vad7ezG2rF+RGH9SeVK6FbGgzc pytQLAPpv5/H0o22gLmjdW6nuptk3oHhpf8k8rtkimLKXKt4G/vy5DBLnIXbMvIAYEqGhp jtAZ95Q5tNbOmhqf/x2q4Ims2qiYq3vv20dCw3M1jVkQvYE4lBV/l1EsG7kGCuFt1HYEC8 Aej8d+WiP5FTQePjeJELU5qi9ZwpcutpxECA1rZY8W3cPFUzlVV2uMdqXRHFpitn7DY0qZ qMEP2rq4GfnJxX7Jg4P5CUIakRN5Y6Gsu6A2UgIVITOQR1zo3EJ/uFNJdce4ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1762976562; 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=KbwnlBAHbvbuN0zj8gsxJ5fZwr5/CTK3kXqDb5DSt5w=; b=PhCFKnRt89lJjZoLVpvEefkwGTW8wkMPllWbisHBLb7KvjMdXWQsd8VD883c3NJFKOrQ+K mjTRrtjs6pe8M1HMoFxdcCk9UuaJwdRaMk7qnnWi2Jgg5dbq+zKW7PywnfPJvgzmG3w0Bh 8s28vwO43dM5IGDu98On5xCA746o0QnM4+RueAAvR0gzWVphvkHyvbal//HVKP+QisJg2o pT3owpxznERhCFs2/VhPuFWioAsbH+6cqDvMPNh2EmiPkO4WruxMOmMgIZmFzdkYP0rICD gS9ePkfakxSI2TrZc+dE9R042/BeOo18KOiGoIl0pJI+6EoDwnAtk/5BRxNDaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1762976562; a=rsa-sha256; cv=none; b=nOA4pxYAbogY8/+6J3+BPC9GvKxrCaM3Udhi4Sv1lr6KV9mBVys1ANd4gCJY45HPpghHBE g0xXCUH0sH/UMrjn/8jcOl9RHO0kc1tMTp46WtvptfZFFKfKts2PrfgkSnYaTDDpClgYbs MZSaIrp19KhVBfx0z5rXDuoX2qXT+IFYiTo/29SAyUrCoVBTqXBwF+v6+OjKBEiwnkPecw FTSEpl2X1CI0FMMoTRinqso1DC8l02OjBvnuKasxqc1IaRxUPg1LvTHoibsr5gBdSEbPzu Ls9GwJm8Nr9wC1nH//Y/UpPPyO3bgbTb7htJL6CN4D8QIE5AR1GaBUzaq4OAqg== 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 4d6DMQ4Zy8zpYm; Wed, 12 Nov 2025 19:42:42 +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 5ACJggmA008820; Wed, 12 Nov 2025 19:42:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5ACJggCQ008817; Wed, 12 Nov 2025 19:42:42 GMT (envelope-from git) Date: Wed, 12 Nov 2025 19:42:42 GMT Message-Id: <202511121942.5ACJggCQ008817@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Navdeep Parhar Subject: git: a6ae6090bb3d - main - cxgbe KTLS tx: Distribute FW6_PLD replies across rx queues 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: np X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a6ae6090bb3dc14eda750aa53650fccf4c0bf818 Auto-Submitted: auto-generated The branch main has been updated by np: URL: https://cgit.FreeBSD.org/src/commit/?id=a6ae6090bb3dc14eda750aa53650fccf4c0bf818 commit a6ae6090bb3dc14eda750aa53650fccf4c0bf818 Author: Navdeep Parhar AuthorDate: 2025-10-21 17:29:28 +0000 Commit: Navdeep Parhar CommitDate: 2025-11-12 19:40:26 +0000 cxgbe KTLS tx: Distribute FW6_PLD replies across rx queues If the connection flowid is available then the replies are requested on the rx queue that is receiving wire traffic for the connection. This reduces contention for the txq lock. Reviewed by: jhb MFC after: 3 days Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D53385 --- sys/dev/cxgbe/crypto/t7_kern_tls.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sys/dev/cxgbe/crypto/t7_kern_tls.c b/sys/dev/cxgbe/crypto/t7_kern_tls.c index 217459126361..d9710b5bd13f 100644 --- a/sys/dev/cxgbe/crypto/t7_kern_tls.c +++ b/sys/dev/cxgbe/crypto/t7_kern_tls.c @@ -141,7 +141,8 @@ alloc_tlspcb(struct ifnet *ifp, struct vi_info *vi, int flags) tlsp->tx_key_addr = -1; tlsp->ghash_offset = -1; tlsp->rx_chid = pi->rx_chan; - tlsp->rx_qid = sc->sge.rxq[pi->vi->first_rxq].iq.abs_id; + tlsp->rx_qid = -1; + tlsp->txq = NULL; mbufq_init(&tlsp->pending_mbufs, INT_MAX); return (tlsp); @@ -157,7 +158,8 @@ t7_tls_tag_alloc(struct ifnet *ifp, union if_snd_tag_alloc_params *params, struct vi_info *vi; struct inpcb *inp; struct sge_txq *txq; - int error, iv_size, keyid, mac_first; + int error, iv_size, keyid, mac_first, qidx; + uint32_t flowid; tls = params->tls.tls; @@ -250,11 +252,15 @@ t7_tls_tag_alloc(struct ifnet *ifp, union if_snd_tag_alloc_params *params, goto failed; } - txq = &sc->sge.txq[vi->first_txq]; if (inp->inp_flowtype != M_HASHTYPE_NONE) - txq += ((inp->inp_flowid % (vi->ntxq - vi->rsrv_noflowq)) + - vi->rsrv_noflowq); - tlsp->txq = txq; + flowid = inp->inp_flowid; + else + flowid = arc4random(); + qidx = flowid % vi->nrxq + vi->first_rxq; + tlsp->rx_qid = sc->sge.rxq[qidx].iq.abs_id; + qidx = (flowid % (vi->ntxq - vi->rsrv_noflowq)) + vi->rsrv_noflowq + + vi->first_txq; + tlsp->txq = txq = &sc->sge.txq[qidx]; INP_RUNLOCK(inp); error = ktls_setup_keys(tlsp, tls, txq);