All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Lilja <ml@napatech.com>
To: <helin.zhang@intel.com>, <jingjing.wu@intel.com>
Cc: <dev@dpdk.org>, Michael Lilja <ml@napatech.com>
Subject: [PATCH v7] net/i40e: improved FDIR programming times
Date: Wed, 17 May 2017 16:31:20 +0200	[thread overview]
Message-ID: <20170517143120.18306-1-ml@napatech.com> (raw)
In-Reply-To: <20170517103807.18746-1-ml@napatech.com>

Previously, the FDIR programming time is +11ms on i40e.
This patch will result in an average programming time of
22usec with a max of 60usec .

Signed-off-by: Michael Lilja <ml@napatech.com>

---
v7:
* Code style changes

v6:
* Fixed code style issues

v5:
* Reinitialization of "i" inconsistent with original intent

v4:
* Code style fix

v3:
* Replaced commit message

v2:
*  Code style fix

v1:
* Initial version
---
---
 drivers/net/i40e/i40e_fdir.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/net/i40e/i40e_fdir.c b/drivers/net/i40e/i40e_fdir.c
index 28cc554f5..1192d5831 100644
--- a/drivers/net/i40e/i40e_fdir.c
+++ b/drivers/net/i40e/i40e_fdir.c
@@ -76,6 +76,7 @@
 /* Wait count and interval for fdir filter programming */
 #define I40E_FDIR_WAIT_COUNT       10
 #define I40E_FDIR_WAIT_INTERVAL_US 1000
+#define I40E_FDIR_MAX_WAIT (I40E_FDIR_WAIT_COUNT * I40E_FDIR_WAIT_INTERVAL_US)
 
 /* Wait count and interval for fdir filter flush */
 #define I40E_FDIR_FLUSH_RETRY       50
@@ -1295,28 +1296,27 @@ i40e_fdir_filter_programming(struct i40e_pf *pf,
 	/* Update the tx tail register */
 	rte_wmb();
 	I40E_PCI_REG_WRITE(txq->qtx_tail, txq->tx_tail);
-
-	for (i = 0; i < I40E_FDIR_WAIT_COUNT; i++) {
-		rte_delay_us(I40E_FDIR_WAIT_INTERVAL_US);
+	for (i = 0; i < I40E_FDIR_MAX_WAIT; i++) {
 		if ((txdp->cmd_type_offset_bsz &
 				rte_cpu_to_le_64(I40E_TXD_QW1_DTYPE_MASK)) ==
 				rte_cpu_to_le_64(I40E_TX_DESC_DTYPE_DESC_DONE))
 			break;
+		rte_delay_us(1);
 	}
-	if (i >= I40E_FDIR_WAIT_COUNT) {
+	if (i >= I40E_FDIR_MAX_WAIT) {
 		PMD_DRV_LOG(ERR, "Failed to program FDIR filter:"
 			    " time out to get DD on tx queue.");
 		return -ETIMEDOUT;
 	}
 	/* totally delay 10 ms to check programming status*/
-	rte_delay_us((I40E_FDIR_WAIT_COUNT - i) * I40E_FDIR_WAIT_INTERVAL_US);
-	if (i40e_check_fdir_programming_status(rxq) < 0) {
-		PMD_DRV_LOG(ERR, "Failed to program FDIR filter:"
-			    " programming status reported.");
-		return -ENOSYS;
+	for (; i < I40E_FDIR_MAX_WAIT; i++) {
+		if (i40e_check_fdir_programming_status(rxq) >= 0)
+			return 0;
+		rte_delay_us(1);
 	}
-
-	return 0;
+	PMD_DRV_LOG(ERR, "Failed to program FDIR filter:"
+		" programming status reported.");
+	return -ETIMEDOUT;
 }
 
 /*
-- 
2.12.2

  parent reply	other threads:[~2017-05-17 14:31 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-16 22:01 [PATCH v3] net/i40e: Improved FDIR programming times Michael Lilja
2017-05-17  2:22 ` Xing, Beilei
2017-05-17  8:44   ` Ferruh Yigit
2017-05-17  9:12 ` [PATCH v4] net/i40e: improved " Michael Lilja
2017-05-17  9:39   ` Xing, Beilei
2017-05-17 10:38   ` [PATCH v5] " Michael Lilja
2017-05-17 10:43     ` Xing, Beilei
2017-05-17 11:21     ` Ferruh Yigit
2017-05-17 13:45     ` [PATCH v6] " Michael Lilja
2017-05-17 14:10       ` Ferruh Yigit
2017-05-17 14:31     ` Michael Lilja [this message]
2017-05-17 14:43       ` [PATCH v7] " Ferruh Yigit
2017-05-17 14:46         ` Michael Lilja
2017-05-17 14:50           ` Ferruh Yigit
2017-05-17 14:52             ` Michael Lilja
2017-05-17 14:57     ` [PATCH v8] " Michael Lilja
2017-05-17 15:16       ` Ferruh Yigit
2017-05-17 15:33         ` Michael Lilja
2017-05-18  1:38       ` Xing, Beilei
2017-05-18  8:52         ` 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=20170517143120.18306-1-ml@napatech.com \
    --to=ml@napatech.com \
    --cc=dev@dpdk.org \
    --cc=helin.zhang@intel.com \
    --cc=jingjing.wu@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.