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 v8] net/i40e: improved FDIR programming times
Date: Wed, 17 May 2017 16:57:57 +0200	[thread overview]
Message-ID: <20170517145757.22299-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>

---
v8:
* Merged two defines into one handling max wait time

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 | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

diff --git a/drivers/net/i40e/i40e_fdir.c b/drivers/net/i40e/i40e_fdir.c
index 28cc554f5..f94e1c3b8 100644
--- a/drivers/net/i40e/i40e_fdir.c
+++ b/drivers/net/i40e/i40e_fdir.c
@@ -73,9 +73,8 @@
 #define I40E_FDIR_IPv6_PAYLOAD_LEN          380
 #define I40E_FDIR_UDP_DEFAULT_LEN           400
 
-/* Wait count and interval for fdir filter programming */
-#define I40E_FDIR_WAIT_COUNT       10
-#define I40E_FDIR_WAIT_INTERVAL_US 1000
+/* Wait time for fdir filter programming */
+#define I40E_FDIR_MAX_WAIT_US 10000
 
 /* Wait count and interval for fdir filter flush */
 #define I40E_FDIR_FLUSH_RETRY       50
@@ -1295,28 +1294,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_US; 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_US) {
 		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_US; 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:58 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     ` [PATCH v7] " Michael Lilja
2017-05-17 14:43       ` 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     ` Michael Lilja [this message]
2017-05-17 15:16       ` [PATCH v8] " 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=20170517145757.22299-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.