From nobody Tue Jul 26 19:30:48 2022 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 4Lsn7r5bXFz4WwmR; Tue, 26 Jul 2022 19:30:48 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Lsn7r52f6z41ys; Tue, 26 Jul 2022 19:30:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1658863848; 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=WVaHyjzqwg2Z1+RdmT7LUyIcYY84N9M1PiwMsb0+hhM=; b=Q+SQhc1f8KBL1/C/WUO8wNvLTy4J/3L29k2IoRb8hlm1GTtkztFgdY82bBHltiVQeB+9Sz eJkFRzv19psD/cBKrrLMvLZTOmDJ/oxU+J3YTrViyRsbIuqgFO7c7xAijRB83Cq/+Uga7R /fhxbB/ysBvRZMEjv+BKpOYhmeoiJAnskVf0ZW1xBof+foDMY2d/CXmfBDSROlTh8o/4Ov wIctybr+5VLCQdiQe24S6AfB88Q6RbBRgsi2bX8jbWdyGUO2hcnocwXblxsFoF8N93aREh yVXhuq3x+l4ZPEw9B9wLYc7HsJJ2crUZb/zG1agQ5iP9XMZ0KOjK37wx+xVRGQ== 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 4Lsn7r46gmzpGT; Tue, 26 Jul 2022 19:30:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 26QJUmOP028635; Tue, 26 Jul 2022 19:30:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 26QJUmPE028634; Tue, 26 Jul 2022 19:30:48 GMT (envelope-from git) Date: Tue, 26 Jul 2022 19:30:48 GMT Message-Id: <202207261930.26QJUmPE028634@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Marcin Wojtas Subject: git: afc13757eaa9 - stable/13 - ena: Add ena_ring_tx_doorbell() function 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mw X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: afc13757eaa98cf3d0b14c10b6ce2069df365496 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1658863848; 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=WVaHyjzqwg2Z1+RdmT7LUyIcYY84N9M1PiwMsb0+hhM=; b=CeHupI2AQyjN844xruYkTjkOLuARJ8mOstxsVTq3w184KiNt4jzhMYKB9+AVo7n6Bop3t1 OW66nfwFLYZ0zOgmNuXCSUWwLnJ6tK64dc2sOzplxE4NIXoo/5ZM9/dbPZIFY0F+cncyup qDZStNCGvuVYfee/FbVIOgzLo7JuZklSXJlg5Nh3NlZwg+4JzNGk4rMfMn6HtI7MQ55Hov LNS96zxADWEFv9UWLEuX8gghBDFdrDol0wrIUTav+Hia99oxyUqXrTNgNUh+dJpx/8/LrA /N4DPGvf7WoAM3Gjn/lZbEAj1Ti9F4DgFZy+GUPvfc2O6NMXBBBwSHxnrva+iQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1658863848; a=rsa-sha256; cv=none; b=YRtjxQcyDpTd0NC4SZvfgH295FyFT/1IsPe4sVguUQnRfHMeV6/MmOHe8krBOBFErcJP53 AyL9CkulAKtZq1EoBf15U7GoTs0tKKH3cDkeILMPTsOvC88Ac7dtxIoG27lm8h4Rce/Ngq rac0e/60798DaO1/wfj59hkxrjnHj5VrcPXsvw22DGWkUv6ZbIJ83vpXYAgMUIKk/hKZ9j HUcfA9KxEszle5fXuxHn6Mke+k8D5EnPlKgqf3Ei/ltAADDt3uRMMvC0KJLiJcf2b5CheC fJmk0WUinSRLWL76Wdm9AttfiWDIn4zvqLMvWJnHwfQob9tmeb1tcuaE1EVi7A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mw: URL: https://cgit.FreeBSD.org/src/commit/?id=afc13757eaa98cf3d0b14c10b6ce2069df365496 commit afc13757eaa98cf3d0b14c10b6ce2069df365496 Author: Dawid Gorecki AuthorDate: 2022-06-10 09:17:52 +0000 Commit: Marcin Wojtas CommitDate: 2022-07-26 19:30:14 +0000 ena: Add ena_ring_tx_doorbell() function Add ena_ring_tx_doorbell function to remove code duplication. Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc. (cherry picked from commit 3501d4f17e8cc0350b8deff671f9991cc7ac280c) --- sys/dev/ena/ena.h | 8 ++++++++ sys/dev/ena/ena_datapath.c | 10 ++-------- sys/dev/ena/ena_netmap.c | 11 +++-------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/sys/dev/ena/ena.h b/sys/dev/ena/ena.h index a6aa39829f12..85f353e7ab54 100644 --- a/sys/dev/ena/ena.h +++ b/sys/dev/ena/ena.h @@ -543,4 +543,12 @@ ena_trigger_reset(struct ena_adapter *adapter, } } +static inline void +ena_ring_tx_doorbell(struct ena_ring *tx_ring) +{ + ena_com_write_sq_doorbell(tx_ring->ena_com_io_sq); + counter_u64_add(tx_ring->tx_stats.doorbells, 1); + tx_ring->acum_pkts = 0; +} + #endif /* !(ENA_H) */ diff --git a/sys/dev/ena/ena_datapath.c b/sys/dev/ena/ena_datapath.c index c6798b3f7eb3..8d4621947e03 100644 --- a/sys/dev/ena/ena_datapath.c +++ b/sys/dev/ena/ena_datapath.c @@ -1017,9 +1017,7 @@ ena_xmit_mbuf(struct ena_ring *tx_ring, struct mbuf **mbuf) ena_log_io(pdev, DBG, "llq tx max burst size of queue %d achieved, writing doorbell to send burst\n", tx_ring->que->id); - ena_com_write_sq_doorbell(tx_ring->ena_com_io_sq); - counter_u64_add(tx_ring->tx_stats.doorbells, 1); - tx_ring->acum_pkts = 0; + ena_ring_tx_doorbell(tx_ring); } /* Prepare the packet's descriptors and send them to device */ @@ -1098,7 +1096,6 @@ ena_start_xmit(struct ena_ring *tx_ring) { struct mbuf *mbuf; struct ena_adapter *adapter = tx_ring->adapter; - struct ena_com_io_sq* io_sq; int ena_qid; int ret = 0; @@ -1111,7 +1108,6 @@ ena_start_xmit(struct ena_ring *tx_ring) return; ena_qid = ENA_IO_TXQ_IDX(tx_ring->que->id); - io_sq = &adapter->ena_dev->io_sq_queues[ena_qid]; while ((mbuf = drbr_peek(adapter->ifp, tx_ring->br)) != NULL) { ena_log_io(adapter->pdev, DBG, @@ -1149,9 +1145,7 @@ ena_start_xmit(struct ena_ring *tx_ring) if (likely(tx_ring->acum_pkts != 0)) { /* Trigger the dma engine */ - ena_com_write_sq_doorbell(io_sq); - counter_u64_add(tx_ring->tx_stats.doorbells, 1); - tx_ring->acum_pkts = 0; + ena_ring_tx_doorbell(tx_ring); } if (unlikely(!tx_ring->running)) diff --git a/sys/dev/ena/ena_netmap.c b/sys/dev/ena/ena_netmap.c index 1525b1efd954..e9511b033fd3 100644 --- a/sys/dev/ena/ena_netmap.c +++ b/sys/dev/ena/ena_netmap.c @@ -375,9 +375,7 @@ ena_netmap_tx_frames(struct ena_netmap_ctx *ctx) /* If any packet was sent... */ if (likely(ctx->nm_i != ctx->kring->nr_hwcur)) { /* ...send the doorbell to the device. */ - ena_com_write_sq_doorbell(ctx->io_sq); - counter_u64_add(ctx->ring->tx_stats.doorbells, 1); - tx_ring->acum_pkts = 0; + ena_ring_tx_doorbell(tx_ring); ctx->ring->next_to_use = ctx->nt; ctx->kring->nr_hwcur = ctx->nm_i; @@ -431,11 +429,8 @@ ena_netmap_tx_frame(struct ena_netmap_ctx *ctx) /* There are no any offloads, as the netmap doesn't support them */ if (tx_ring->acum_pkts == DB_THRESHOLD || - ena_com_is_doorbell_needed(ctx->io_sq, &ena_tx_ctx)) { - ena_com_write_sq_doorbell(ctx->io_sq); - counter_u64_add(tx_ring->tx_stats.doorbells, 1); - tx_ring->acum_pkts = 0; - } + ena_com_is_doorbell_needed(ctx->io_sq, &ena_tx_ctx)) + ena_ring_tx_doorbell(tx_ring); rc = ena_com_prepare_tx(ctx->io_sq, &ena_tx_ctx, &nb_hw_desc); if (unlikely(rc != 0)) {