DPDK-dev Archive on lore.kernel.org
 help / color / Atom feed
* [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver
@ 2020-01-14 11:29 Reshma Pattan
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 1/5] net/ixgbe: remove ixgbe vector config flag Reshma Pattan
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Reshma Pattan @ 2020-01-14 11:29 UTC (permalink / raw)
  To: dev; +Cc: Reshma Pattan

This patch set does below ixgbe driver code improvements.

1)Removed usage of CONFIG_RTE_IXGBE_INC_VECTOR and used
architectures specific flags instead.

2)Removed weak symbols from the stub functions for ppc
architecture.

3)Removed duplicate function declarations.

4)Added ixgbe arm vector file for messon build.

5)Added missing stubs for ppc architecture.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>

Reshma Pattan (5):
  net/ixgbe: remove ixgbe vector config flag
  net/ixgbe: remove weak symbols in ixgbe rxtx
  net/ixgbe: remove duplicate function declaration
  net/ixgbe: add missing stubs for ppc
  net/ixgbe: add arm vector support in meson

 config/common_base             |  1 -
 doc/guides/nics/ixgbe.rst      |  1 -
 drivers/net/ixgbe/Makefile     |  6 ++---
 drivers/net/ixgbe/ixgbe_rxtx.c | 49 ++++++++++++++++++++--------------
 drivers/net/ixgbe/ixgbe_rxtx.h |  7 ++---
 drivers/net/ixgbe/meson.build  |  3 ++-
 6 files changed, 36 insertions(+), 31 deletions(-)

-- 
2.21.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH 1/5] net/ixgbe: remove ixgbe vector config flag
  2020-01-14 11:29 [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Reshma Pattan
@ 2020-01-14 11:29 ` Reshma Pattan
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 2/5] net/ixgbe: remove weak symbols in ixgbe rxtx Reshma Pattan
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Reshma Pattan @ 2020-01-14 11:29 UTC (permalink / raw)
  To: dev; +Cc: Reshma Pattan

CONFIG_RTE_IXGBE_INC_VECTOR is enabled by default, so remove
it and use architecture specific flags.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
---
 config/common_base             |  1 -
 doc/guides/nics/ixgbe.rst      |  1 -
 drivers/net/ixgbe/Makefile     |  6 +++---
 drivers/net/ixgbe/ixgbe_rxtx.c | 17 ++++++++---------
 drivers/net/ixgbe/ixgbe_rxtx.h |  9 ++++-----
 drivers/net/ixgbe/meson.build  |  1 -
 6 files changed, 15 insertions(+), 20 deletions(-)

diff --git a/config/common_base b/config/common_base
index 7dec7ed45..999582b0a 100644
--- a/config/common_base
+++ b/config/common_base
@@ -295,7 +295,6 @@ CONFIG_RTE_LIBRTE_IXGBE_DEBUG_RX=n
 CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX=n
 CONFIG_RTE_LIBRTE_IXGBE_DEBUG_TX_FREE=n
 CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n
-CONFIG_RTE_IXGBE_INC_VECTOR=y
 CONFIG_RTE_LIBRTE_IXGBE_BYPASS=n
 
 #
diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 5c3a7e4f2..1f424b38a 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -15,7 +15,6 @@ There is no change to PMD API. The RX/TX handler are the only two entries for vP
 They are transparently registered at runtime RX/TX execution if all condition checks pass.
 
 1.  To date, only an SSE version of IX GBE vPMD is available.
-    To ensure that vPMD is in the binary code, ensure that the option CONFIG_RTE_IXGBE_INC_VECTOR=y is in the configure file.
 
 Some constraints apply as pre-conditions for specific optimizations on bulk packet transfers.
 The following sections explain RX and TX constraints in the vPMD.
diff --git a/drivers/net/ixgbe/Makefile b/drivers/net/ixgbe/Makefile
index 85762e2f2..8b9d51f75 100644
--- a/drivers/net/ixgbe/Makefile
+++ b/drivers/net/ixgbe/Makefile
@@ -89,9 +89,9 @@ SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_fdir.c
 SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_pf.c
 SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_flow.c
 ifeq ($(CONFIG_RTE_ARCH_ARM64),y)
-SRCS-$(CONFIG_RTE_IXGBE_INC_VECTOR) += ixgbe_rxtx_vec_neon.c
-else
-SRCS-$(CONFIG_RTE_IXGBE_INC_VECTOR) += ixgbe_rxtx_vec_sse.c
+SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx_vec_neon.c
+else ifeq ($(CONFIG_RTE_ARCH_X86),y)
+SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx_vec_sse.c
 endif
 ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_BYPASS),y)
 SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_bypass.c
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index fa572d184..06617a47a 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -87,7 +87,7 @@
 #define rte_ixgbe_prefetch(p)   do {} while (0)
 #endif
 
-#ifdef RTE_IXGBE_INC_VECTOR
+#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 uint16_t ixgbe_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
 				    uint16_t nb_pkts);
 #endif
@@ -344,7 +344,7 @@ ixgbe_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts,
 	return nb_tx;
 }
 
-#ifdef RTE_IXGBE_INC_VECTOR
+#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 static uint16_t
 ixgbe_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
 		    uint16_t nb_pkts)
@@ -2392,7 +2392,7 @@ ixgbe_set_tx_function(struct rte_eth_dev *dev, struct ixgbe_tx_queue *txq)
 			(txq->tx_rs_thresh >= RTE_PMD_IXGBE_TX_MAX_BURST)) {
 		PMD_INIT_LOG(DEBUG, "Using simple tx code path");
 		dev->tx_pkt_prepare = NULL;
-#ifdef RTE_IXGBE_INC_VECTOR
+#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 		if (txq->tx_rs_thresh <= RTE_IXGBE_TX_MAX_FREE_BUF_SZ &&
 				(rte_eal_process_type() != RTE_PROC_PRIMARY ||
 					ixgbe_txq_vec_setup(txq) == 0)) {
@@ -2687,7 +2687,7 @@ ixgbe_rx_queue_release_mbufs(struct ixgbe_rx_queue *rxq)
 {
 	unsigned i;
 
-#ifdef RTE_IXGBE_INC_VECTOR
+#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 	/* SSE Vector driver has a different way of releasing mbufs. */
 	if (rxq->rx_using_sse) {
 		ixgbe_rx_queue_release_mbufs_vec(rxq);
@@ -2825,7 +2825,7 @@ ixgbe_reset_rx_queue(struct ixgbe_adapter *adapter, struct ixgbe_rx_queue *rxq)
 	rxq->pkt_first_seg = NULL;
 	rxq->pkt_last_seg = NULL;
 
-#ifdef RTE_IXGBE_INC_VECTOR
+#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 	rxq->rxrearm_start = 0;
 	rxq->rxrearm_nb = 0;
 #endif
@@ -3139,7 +3139,7 @@ ixgbe_dev_rx_descriptor_status(void *rx_queue, uint16_t offset)
 	if (unlikely(offset >= rxq->nb_rx_desc))
 		return -EINVAL;
 
-#ifdef RTE_IXGBE_INC_VECTOR
+#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 	if (rxq->rx_using_sse)
 		nb_hold = rxq->rxrearm_nb;
 	else
@@ -4638,8 +4638,7 @@ ixgbe_set_rx_function(struct rte_eth_dev *dev)
 	if (ixgbe_rx_vec_dev_conf_condition_check(dev) ||
 	    !adapter->rx_bulk_alloc_allowed) {
 		PMD_INIT_LOG(DEBUG, "Port[%d] doesn't meet Vector Rx "
-				    "preconditions or RTE_IXGBE_INC_VECTOR is "
-				    "not enabled",
+				    "preconditions",
 			     dev->data->port_id);
 
 		adapter->rx_vec_allowed = false;
@@ -5809,7 +5808,7 @@ ixgbe_config_rss_filter(struct rte_eth_dev *dev,
 	return 0;
 }
 
-/* Stubs needed for linkage when CONFIG_RTE_IXGBE_INC_VECTOR is set to 'n' */
+/* Stubs needed for linkage for ppc arch */
 __rte_weak int
 ixgbe_rx_vec_dev_conf_condition_check(struct rte_eth_dev __rte_unused *dev)
 {
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.h b/drivers/net/ixgbe/ixgbe_rxtx.h
index 505d344b9..5c9aa0f9d 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.h
+++ b/drivers/net/ixgbe/ixgbe_rxtx.h
@@ -33,7 +33,7 @@
 
 #define RTE_IXGBE_DESCS_PER_LOOP    4
 
-#ifdef RTE_IXGBE_INC_VECTOR
+#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 #define RTE_IXGBE_RXQ_REARM_THRESH      32
 #define RTE_IXGBE_MAX_RX_BURST          RTE_IXGBE_RXQ_REARM_THRESH
 #endif
@@ -115,7 +115,7 @@ struct ixgbe_rx_queue {
 	uint8_t            using_ipsec;
 	/**< indicates that IPsec RX feature is in use */
 #endif
-#ifdef RTE_IXGBE_INC_VECTOR
+#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 	uint16_t            rxrearm_nb;     /**< number of remaining to be re-armed */
 	uint16_t            rxrearm_start;  /**< the idx we start the re-arming from */
 #endif
@@ -288,12 +288,11 @@ void ixgbe_rx_queue_release_mbufs_vec(struct ixgbe_rx_queue *rxq);
 extern const uint32_t ptype_table[IXGBE_PACKET_TYPE_MAX];
 extern const uint32_t ptype_table_tn[IXGBE_PACKET_TYPE_TN_MAX];
 
-#ifdef RTE_IXGBE_INC_VECTOR
-
+#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 uint16_t ixgbe_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
 				    uint16_t nb_pkts);
 int ixgbe_txq_vec_setup(struct ixgbe_tx_queue *txq);
-#endif /* RTE_IXGBE_INC_VECTOR */
+#endif
 
 uint64_t ixgbe_get_tx_port_offloads(struct rte_eth_dev *dev);
 uint64_t ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev);
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index 1b0f6d1ef..6667af634 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -25,7 +25,6 @@ sources = files(
 deps += ['hash', 'security']
 
 if arch_subdir == 'x86'
-	dpdk_conf.set('RTE_IXGBE_INC_VECTOR', 1)
 	sources += files('ixgbe_rxtx_vec_sse.c')
 endif
 
-- 
2.21.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH 2/5] net/ixgbe: remove weak symbols in ixgbe rxtx
  2020-01-14 11:29 [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Reshma Pattan
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 1/5] net/ixgbe: remove ixgbe vector config flag Reshma Pattan
@ 2020-01-14 11:29 ` Reshma Pattan
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 3/5] net/ixgbe: remove duplicate function declaration Reshma Pattan
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Reshma Pattan @ 2020-01-14 11:29 UTC (permalink / raw)
  To: dev; +Cc: Reshma Pattan

remove weak symbols from ixgbe_rxtx.c file as
it is done in i40e driver in commit "02ad704708"
(net/i40e: eliminate weak symbols in data path)

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
---
 drivers/net/ixgbe/ixgbe_rxtx.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index 06617a47a..4a85d3498 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -5808,14 +5808,15 @@ ixgbe_config_rss_filter(struct rte_eth_dev *dev,
 	return 0;
 }
 
-/* Stubs needed for linkage for ppc arch */
-__rte_weak int
+/* Stubs needed for linkage when CONFIG_RTE_ARCH_PPC_64 is set */
+#if defined(RTE_ARCH_PPC_64)
+int
 ixgbe_rx_vec_dev_conf_condition_check(struct rte_eth_dev __rte_unused *dev)
 {
 	return -1;
 }
 
-__rte_weak uint16_t
+uint16_t
 ixgbe_recv_pkts_vec(
 	void __rte_unused *rx_queue,
 	struct rte_mbuf __rte_unused **rx_pkts,
@@ -5824,7 +5825,7 @@ ixgbe_recv_pkts_vec(
 	return 0;
 }
 
-__rte_weak uint16_t
+uint16_t
 ixgbe_recv_scattered_pkts_vec(
 	void __rte_unused *rx_queue,
 	struct rte_mbuf __rte_unused **rx_pkts,
@@ -5833,8 +5834,9 @@ ixgbe_recv_scattered_pkts_vec(
 	return 0;
 }
 
-__rte_weak int
+int
 ixgbe_rxq_vec_setup(struct ixgbe_rx_queue __rte_unused *rxq)
 {
 	return -1;
 }
+#endif
-- 
2.21.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH 3/5] net/ixgbe: remove duplicate function declaration
  2020-01-14 11:29 [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Reshma Pattan
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 1/5] net/ixgbe: remove ixgbe vector config flag Reshma Pattan
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 2/5] net/ixgbe: remove weak symbols in ixgbe rxtx Reshma Pattan
@ 2020-01-14 11:29 ` Reshma Pattan
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 4/5] net/ixgbe: add missing stubs for ppc Reshma Pattan
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Reshma Pattan @ 2020-01-14 11:29 UTC (permalink / raw)
  To: dev; +Cc: Reshma Pattan, Zhiyong Yang

remove duplicate declarations of ixgbe_xmit_fixed_burst_vec
from ixgbe_rxtx.c

Fixes: 646412f9ff ("net/ixgbe: remove limit of Tx burst size")
CC: Zhiyong Yang <zhiyong.yang@intel.com>

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
---
 drivers/net/ixgbe/ixgbe_rxtx.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index 4a85d3498..2be32603c 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -87,11 +87,6 @@
 #define rte_ixgbe_prefetch(p)   do {} while (0)
 #endif
 
-#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
-uint16_t ixgbe_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
-				    uint16_t nb_pkts);
-#endif
-
 /*********************************************************************
  *
  *  TX functions
-- 
2.21.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH 4/5] net/ixgbe: add missing stubs for ppc
  2020-01-14 11:29 [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Reshma Pattan
                   ` (2 preceding siblings ...)
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 3/5] net/ixgbe: remove duplicate function declaration Reshma Pattan
@ 2020-01-14 11:29 ` Reshma Pattan
  2020-01-16 15:25   ` Ferruh Yigit
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 5/5] net/ixgbe: add arm vector support in meson Reshma Pattan
  2020-01-16  3:12 ` [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Ye Xiaolong
  5 siblings, 1 reply; 8+ messages in thread
From: Reshma Pattan @ 2020-01-14 11:29 UTC (permalink / raw)
  To: dev; +Cc: Reshma Pattan, Vlad Zolotarov

add stubs for ixgbe_xmit_fixed_burst_vec,
ixgbe_rx_queue_release_mbufs_vec and
ixgbe_txq_vec_setup

CC: Vlad Zolotarov <vladz@cloudius-systems.com>

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
---
 drivers/net/ixgbe/ixgbe_rxtx.c | 25 +++++++++++++++++++------
 drivers/net/ixgbe/ixgbe_rxtx.h |  2 --
 2 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index 2be32603c..795ba6bfb 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -339,7 +339,6 @@ ixgbe_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts,
 	return nb_tx;
 }
 
-#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 static uint16_t
 ixgbe_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
 		    uint16_t nb_pkts)
@@ -361,7 +360,6 @@ ixgbe_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 	return nb_tx;
 }
-#endif
 
 static inline void
 ixgbe_set_xmit_ctx(struct ixgbe_tx_queue *txq,
@@ -2387,14 +2385,12 @@ ixgbe_set_tx_function(struct rte_eth_dev *dev, struct ixgbe_tx_queue *txq)
 			(txq->tx_rs_thresh >= RTE_PMD_IXGBE_TX_MAX_BURST)) {
 		PMD_INIT_LOG(DEBUG, "Using simple tx code path");
 		dev->tx_pkt_prepare = NULL;
-#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 		if (txq->tx_rs_thresh <= RTE_IXGBE_TX_MAX_FREE_BUF_SZ &&
 				(rte_eal_process_type() != RTE_PROC_PRIMARY ||
 					ixgbe_txq_vec_setup(txq) == 0)) {
 			PMD_INIT_LOG(DEBUG, "Vector tx enabled.");
 			dev->tx_pkt_burst = ixgbe_xmit_pkts_vec;
 		} else
-#endif
 		dev->tx_pkt_burst = ixgbe_xmit_pkts_simple;
 	} else {
 		PMD_INIT_LOG(DEBUG, "Using full-featured tx code path");
@@ -2682,13 +2678,11 @@ ixgbe_rx_queue_release_mbufs(struct ixgbe_rx_queue *rxq)
 {
 	unsigned i;
 
-#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 	/* SSE Vector driver has a different way of releasing mbufs. */
 	if (rxq->rx_using_sse) {
 		ixgbe_rx_queue_release_mbufs_vec(rxq);
 		return;
 	}
-#endif
 
 	if (rxq->sw_ring != NULL) {
 		for (i = 0; i < rxq->nb_rx_desc; i++) {
@@ -5834,4 +5828,23 @@ ixgbe_rxq_vec_setup(struct ixgbe_rx_queue __rte_unused *rxq)
 {
 	return -1;
 }
+
+uint16_t
+ixgbe_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
+					uint16_t nb_pkts)
+{
+	return 0;
+}
+
+int
+ixgbe_txq_vec_setup(struct ixgbe_tx_queue *txq)
+{
+	return -1;
+}
+
+void
+ixgbe_rx_queue_release_mbufs_vec(struct ixgbe_rx_queue *rxq)
+{
+	return;
+}
 #endif
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.h b/drivers/net/ixgbe/ixgbe_rxtx.h
index 5c9aa0f9d..3e11630f7 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.h
+++ b/drivers/net/ixgbe/ixgbe_rxtx.h
@@ -288,11 +288,9 @@ void ixgbe_rx_queue_release_mbufs_vec(struct ixgbe_rx_queue *rxq);
 extern const uint32_t ptype_table[IXGBE_PACKET_TYPE_MAX];
 extern const uint32_t ptype_table_tn[IXGBE_PACKET_TYPE_TN_MAX];
 
-#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64)
 uint16_t ixgbe_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
 				    uint16_t nb_pkts);
 int ixgbe_txq_vec_setup(struct ixgbe_tx_queue *txq);
-#endif
 
 uint64_t ixgbe_get_tx_port_offloads(struct rte_eth_dev *dev);
 uint64_t ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev);
-- 
2.21.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH 5/5] net/ixgbe: add arm vector support in meson
  2020-01-14 11:29 [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Reshma Pattan
                   ` (3 preceding siblings ...)
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 4/5] net/ixgbe: add missing stubs for ppc Reshma Pattan
@ 2020-01-14 11:29 ` Reshma Pattan
  2020-01-16  3:12 ` [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Ye Xiaolong
  5 siblings, 0 replies; 8+ messages in thread
From: Reshma Pattan @ 2020-01-14 11:29 UTC (permalink / raw)
  To: dev; +Cc: Reshma Pattan

Add missing arm vector build support to meson.build.

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
---
 drivers/net/ixgbe/meson.build | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index 6667af634..06cf42a4a 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -26,6 +26,8 @@ deps += ['hash', 'security']
 
 if arch_subdir == 'x86'
 	sources += files('ixgbe_rxtx_vec_sse.c')
+elif arch_subdir == 'arm'
+	sources += files('ixgbe_rxtx_vec_neon.c')
 endif
 
 includes += include_directories('base')
-- 
2.21.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver
  2020-01-14 11:29 [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Reshma Pattan
                   ` (4 preceding siblings ...)
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 5/5] net/ixgbe: add arm vector support in meson Reshma Pattan
@ 2020-01-16  3:12 ` Ye Xiaolong
  5 siblings, 0 replies; 8+ messages in thread
From: Ye Xiaolong @ 2020-01-16  3:12 UTC (permalink / raw)
  To: Reshma Pattan; +Cc: dev

On 01/14, Reshma Pattan wrote:
>This patch set does below ixgbe driver code improvements.
>
>1)Removed usage of CONFIG_RTE_IXGBE_INC_VECTOR and used
>architectures specific flags instead.
>
>2)Removed weak symbols from the stub functions for ppc
>architecture.
>
>3)Removed duplicate function declarations.
>
>4)Added ixgbe arm vector file for messon build.
>
>5)Added missing stubs for ppc architecture.
>
>Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
>
>Reshma Pattan (5):
>  net/ixgbe: remove ixgbe vector config flag
>  net/ixgbe: remove weak symbols in ixgbe rxtx
>  net/ixgbe: remove duplicate function declaration
>  net/ixgbe: add missing stubs for ppc
>  net/ixgbe: add arm vector support in meson
>
> config/common_base             |  1 -
> doc/guides/nics/ixgbe.rst      |  1 -
> drivers/net/ixgbe/Makefile     |  6 ++---
> drivers/net/ixgbe/ixgbe_rxtx.c | 49 ++++++++++++++++++++--------------
> drivers/net/ixgbe/ixgbe_rxtx.h |  7 ++---
> drivers/net/ixgbe/meson.build  |  3 ++-
> 6 files changed, 36 insertions(+), 31 deletions(-)
>
>-- 
>2.21.0
>

Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>

Applied to dpdk-next-net-intel, Thanks.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH 4/5] net/ixgbe: add missing stubs for ppc
  2020-01-14 11:29 ` [dpdk-dev] [PATCH 4/5] net/ixgbe: add missing stubs for ppc Reshma Pattan
@ 2020-01-16 15:25   ` Ferruh Yigit
  0 siblings, 0 replies; 8+ messages in thread
From: Ferruh Yigit @ 2020-01-16 15:25 UTC (permalink / raw)
  To: Reshma Pattan, dev; +Cc: Vlad Zolotarov

On 1/14/2020 11:29 AM, Reshma Pattan wrote:
> add stubs for ixgbe_xmit_fixed_burst_vec,
> ixgbe_rx_queue_release_mbufs_vec and
> ixgbe_txq_vec_setup
> 
> CC: Vlad Zolotarov <vladz@cloudius-systems.com>
> 
> Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>

<...>

> @@ -5834,4 +5828,23 @@ ixgbe_rxq_vec_setup(struct ixgbe_rx_queue __rte_unused *rxq)
>  {
>  	return -1;
>  }
> +
> +uint16_t
> +ixgbe_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
> +					uint16_t nb_pkts)
> +{
> +	return 0;
> +}
> +
> +int
> +ixgbe_txq_vec_setup(struct ixgbe_tx_queue *txq)
> +{
> +	return -1;
> +}
> +
> +void
> +ixgbe_rx_queue_release_mbufs_vec(struct ixgbe_rx_queue *rxq)
> +{
> +	return;
> +}
>  #endif


getting unused variable warnings for PPC [1], because of missing '__rte_unused'
attribute on arguments. I will add them while merging, please verify the commits
on next-net

[1]: error: unused parameter ‘tx_queue’


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, back to index

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-14 11:29 [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Reshma Pattan
2020-01-14 11:29 ` [dpdk-dev] [PATCH 1/5] net/ixgbe: remove ixgbe vector config flag Reshma Pattan
2020-01-14 11:29 ` [dpdk-dev] [PATCH 2/5] net/ixgbe: remove weak symbols in ixgbe rxtx Reshma Pattan
2020-01-14 11:29 ` [dpdk-dev] [PATCH 3/5] net/ixgbe: remove duplicate function declaration Reshma Pattan
2020-01-14 11:29 ` [dpdk-dev] [PATCH 4/5] net/ixgbe: add missing stubs for ppc Reshma Pattan
2020-01-16 15:25   ` Ferruh Yigit
2020-01-14 11:29 ` [dpdk-dev] [PATCH 5/5] net/ixgbe: add arm vector support in meson Reshma Pattan
2020-01-16  3:12 ` [dpdk-dev] [PATCH 0/5] net/ixgbe: improvements to ixgbe driver Ye Xiaolong

DPDK-dev Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \
		dev@dpdk.org
	public-inbox-index dpdk-dev

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git