From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: ferruh.yigit@intel.com
Cc: dev@dpdk.org, g.singh@nxp.com,
Alex Marginean <alexandru.marginean@nxp.com>
Subject: [dpdk-dev] [PATCH 03/10] net/enetc: batch process enetc clean Tx ring calls
Date: Mon, 2 Mar 2020 20:02:02 +0530 [thread overview]
Message-ID: <20200302143209.11854-4-hemant.agrawal@nxp.com> (raw)
In-Reply-To: <20200302143209.11854-1-hemant.agrawal@nxp.com>
From: Alex Marginean <alexandru.marginean@nxp.com>
Each call to enetc_clean_tx_ring will cost at least 150-200 CPU cycles
even if no clean-up is done, due to the CI register read.
We're only calling it once at the end of the function, on the assumption
that software is slower than hardware and hardware completed sending older
frames out by now.
We're also cleaning up the ring before kicking off Tx for the new batch to
minimize chances of contention on the Tx ring.
Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
---
drivers/net/enetc/enetc_rxtx.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/net/enetc/enetc_rxtx.c b/drivers/net/enetc/enetc_rxtx.c
index 395f5ecf4..958e3a21d 100644
--- a/drivers/net/enetc/enetc_rxtx.c
+++ b/drivers/net/enetc/enetc_rxtx.c
@@ -76,7 +76,6 @@ enetc_xmit_pkts(void *tx_queue,
start = 0;
while (nb_pkts--) {
- enetc_clean_tx_ring(tx_ring);
tx_ring->q_swbd[i].buffer_addr = tx_pkts[start];
txbd = ENETC_TXBD(*tx_ring, i);
tx_swbd = &tx_ring->q_swbd[i];
@@ -92,6 +91,14 @@ enetc_xmit_pkts(void *tx_queue,
i = 0;
}
+ /* we're only cleaning up the Tx ring here, on the assumption that
+ * software is slower than hardware and hardware completed sending
+ * older frames out by now.
+ * We're also cleaning up the ring before kicking off Tx for the new
+ * batch to minimize chances of contention on the Tx ring
+ */
+ enetc_clean_tx_ring(tx_ring);
+
tx_ring->next_to_use = i;
enetc_wr_reg(tx_ring->tcir, i);
return start;
--
2.17.1
next prev parent reply other threads:[~2020-03-02 9:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-02 14:31 [dpdk-dev] [PATCH 00/10] net/enetc: optimization and cleanup Hemant Agrawal
2020-03-02 14:32 ` [dpdk-dev] [PATCH 01/10] net/enetc: do not stall in clean Tx ring Hemant Agrawal
2020-03-02 14:32 ` [dpdk-dev] [PATCH 02/10] net/enetc: use relaxed read for Tx CI in clean Tx Hemant Agrawal
2020-03-02 14:32 ` Hemant Agrawal [this message]
2020-03-02 14:32 ` [dpdk-dev] [PATCH 04/10] net/enetc: erratum wa for Rx lock-up issue Hemant Agrawal
2020-03-02 14:32 ` [dpdk-dev] [PATCH 05/10] net/enetc: improve batching Rx ring refill Hemant Agrawal
2020-03-02 14:32 ` [dpdk-dev] [PATCH 06/10] net/enetc: cache align enetc bdr structure Hemant Agrawal
2020-03-02 14:32 ` [dpdk-dev] [PATCH 07/10] net/enetc: use bulk alloc in Rx refill ring Hemant Agrawal
2020-03-02 14:32 ` [dpdk-dev] [PATCH 08/10] net/enetc: use bulk free in Tx clean Hemant Agrawal
2020-03-02 14:32 ` [dpdk-dev] [PATCH 09/10] net/enetc: improve prefetch in Rx ring clean Hemant Agrawal
2020-03-02 14:32 ` [dpdk-dev] [PATCH 10/10] net/enetc: init SI transactions attribute reg Hemant Agrawal
2020-03-03 12:31 ` [dpdk-dev] [PATCH 00/10] net/enetc: optimization and cleanup Gagandeep Singh
2020-03-03 14:02 ` Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200302143209.11854-4-hemant.agrawal@nxp.com \
--to=hemant.agrawal@nxp.com \
--cc=alexandru.marginean@nxp.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=g.singh@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).