DPDK patches and discussions
 help / color / mirror / Atom feed
From: xiangxia.m.yue@gmail.com
To: wenzhuo.lu@intel.com, konstantin.ananyev@intel.com,
	beilei.xing@intel.com, wei.dai@intel.com
Cc: dev@dpdk.org, Tonghao Zhang <xiangxia.m.yue@gmail.com>
Subject: [dpdk-dev] [PATCH v3 1/5] net/ixgbevf: set the inter-interrupt interval for EITR.
Date: Thu, 22 Mar 2018 06:01:54 -0700	[thread overview]
Message-ID: <1521723718-93761-2-git-send-email-xiangxia.m.yue@gmail.com> (raw)
In-Reply-To: <1521723718-93761-1-git-send-email-xiangxia.m.yue@gmail.com>

From: Tonghao Zhang <xiangxia.m.yue@gmail.com>

Set EITR interval as default. This patch can improve the
performance when we enable the rx-intrrupt to process the
packets because we hope rx-intrrupt reduce CPU. For example,
the 200us value of EITR makes the performance better with
the low CPU.

Users can configure the value of ITR via DPDK configuration.

The default value of ITR is 500us, compatible with RSC of ixgbe PF,
and next patch will use the default value.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
---
v1 --> v2:
use the configure file, for different user.
suggested by Beilei Xing, http://dpdk.org/dev/patchwork/patch/32989
---
 config/common_base               |  2 ++
 drivers/net/ixgbe/ixgbe_ethdev.c |  7 +++++++
 drivers/net/ixgbe/ixgbe_ethdev.h | 12 ++++++++++++
 3 files changed, 21 insertions(+)

diff --git a/config/common_base b/config/common_base
index e74febe..2e9fded 100644
--- a/config/common_base
+++ b/config/common_base
@@ -196,6 +196,8 @@ CONFIG_RTE_LIBRTE_IXGBE_DEBUG_DRIVER=n
 CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n
 CONFIG_RTE_IXGBE_INC_VECTOR=y
 CONFIG_RTE_LIBRTE_IXGBE_BYPASS=n
+# interval up to 1024 us
+CONFIG_RTE_LIBRTE_IXGBE_ITR_INTERVAL=-1
 
 #
 # Compile burst-oriented I40E PMD driver
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index e67389f..495e72c 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -5780,6 +5780,13 @@ static void ixgbevf_set_vfta_all(struct rte_eth_dev *dev, bool on)
 		if (vector_idx < base + intr_handle->nb_efd - 1)
 			vector_idx++;
 	}
+
+	/* As RX queue setting above show, all queues use the vector 0.
+	 * Set only the ITR value of IXGBE_MISC_VEC_ID.
+	 */
+	IXGBE_WRITE_REG(hw, IXGBE_VTEITR(IXGBE_MISC_VEC_ID),
+			ixgbe_calc_itr_interval(RTE_LIBRTE_IXGBE_ITR_INTERVAL)
+			| IXGBE_EITR_CNT_WDIS);
 }
 
 /**
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index 1db29bd..c779001 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -58,6 +58,18 @@
 		IXGBE_EITR_ITR_INT_MASK)
 
 
+#define IXGBE_QUEUE_ITR_INTERVAL_MAX	1024 /* 1024us */
+#define IXGBE_QUEUE_ITR_INTERVAL_DEFAULT	500 /* 500us */
+
+static inline uint16_t
+ixgbe_calc_itr_interval(int16_t interval)
+{
+	if (interval < 0 || interval > IXGBE_QUEUE_ITR_INTERVAL_MAX)
+		interval = IXGBE_QUEUE_ITR_INTERVAL_DEFAULT;
+
+	return IXGBE_EITR_INTERVAL_US(interval);
+}
+
 /* Loopback operation modes */
 /* 82599 specific loopback operation types */
 #define IXGBE_LPBK_82599_NONE   0x0 /* Default value. Loopback is disabled. */
-- 
1.8.3.1

  reply	other threads:[~2018-03-22 13:02 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-22 13:01 [dpdk-dev] [PATCH v3 0/5] ixgbe: fix bugs or just improve xiangxia.m.yue
2018-03-22 13:01 ` xiangxia.m.yue [this message]
2018-04-17 11:00   ` [dpdk-dev] [PATCH v3 1/5] net/ixgbevf: set the inter-interrupt interval for EITR Ferruh Yigit
2018-04-18  1:01     ` Tonghao Zhang
2018-04-18 16:10       ` Ferruh Yigit
2018-04-26 13:14         ` Zhang, Qi Z
2018-04-26 13:54           ` Tonghao Zhang
2018-03-22 13:01 ` [dpdk-dev] [PATCH v3 2/5] net/ixgbe: set the ITR via configuration xiangxia.m.yue
2018-03-22 13:01 ` [dpdk-dev] [PATCH v3 3/5] net/ixgbe: write disable to ITR counter xiangxia.m.yue
2018-03-22 13:01 ` [dpdk-dev] [PATCH v3 4/5] net/ixgbevf: save IXGBE_VTEIMS to intr->mask for performance xiangxia.m.yue
2018-03-22 13:01 ` [dpdk-dev] [PATCH v3 5/5] net/ixgbe: remove the unnecessary call rte_intr_enable xiangxia.m.yue
  -- strict thread matches above, loose matches on Subject: below --
2018-02-05  0:51 [dpdk-dev] [PATCH v3 0/5] ixgbe: fix bugs or just improve xiangxia.m.yue
2018-02-05  0:51 ` [dpdk-dev] [PATCH v3 1/5] net/ixgbevf: set the inter-interrupt interval for EITR xiangxia.m.yue

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=1521723718-93761-2-git-send-email-xiangxia.m.yue@gmail.com \
    --to=xiangxia.m.yue@gmail.com \
    --cc=beilei.xing@intel.com \
    --cc=dev@dpdk.org \
    --cc=konstantin.ananyev@intel.com \
    --cc=wei.dai@intel.com \
    --cc=wenzhuo.lu@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 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).