DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements
@ 2018-12-26 11:33 Hemant Agrawal
  2018-12-26 11:33 ` [dpdk-dev] [PATCH 1/4] bus/dpaa: fix the logical to physical core affine logic Hemant Agrawal
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Hemant Agrawal @ 2018-12-26 11:33 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Shreyansh Jain

Few fixes and minor enhancements in NXP DPAA driver

Hemant Agrawal (4):
  bus/dpaa: fix the logical to physical core affine logic
  net/dpaa: fix the secondary process
  net/dpaa: update supported ptypes
  net/dpaa: update RSS offload types

 drivers/bus/dpaa/dpaa_bus.c    | 41 +++++++++++++++++-----------------
 drivers/net/dpaa/dpaa_ethdev.c | 19 +++++++++++-----
 drivers/net/dpaa/dpaa_ethdev.h | 12 ++++++----
 3 files changed, 42 insertions(+), 30 deletions(-)

-- 
2.17.1

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

* [dpdk-dev] [PATCH 1/4] bus/dpaa: fix the logical to physical core affine logic
  2018-12-26 11:33 [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements Hemant Agrawal
@ 2018-12-26 11:33 ` Hemant Agrawal
  2018-12-26 11:33 ` [dpdk-dev] [PATCH 2/4] net/dpaa: fix the secondary process Hemant Agrawal
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Hemant Agrawal @ 2018-12-26 11:33 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Shreyansh Jain, Nipun Gupta, stable

The code was treating the lcore id as physical core id.
The code is updated to use actual physical core value
for any core affinity logic.

Note that DPAA devices are single cluster systems.

Fixes: 5d944582d028 ("bus/dpaa: check portal presence in the caller function")
Cc: Nipun Gupta <nipun.gupta@nxp.com>
Cc: stable@dpdk.org

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/dpaa/dpaa_bus.c | 41 +++++++++++++++++++------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c
index 203f60dc1..1f9e3ca11 100644
--- a/drivers/bus/dpaa/dpaa_bus.c
+++ b/drivers/bus/dpaa/dpaa_bus.c
@@ -250,52 +250,53 @@ dpaa_clean_device_list(void)
 
 int rte_dpaa_portal_init(void *arg)
 {
-	cpu_set_t cpuset;
 	pthread_t id;
-	uint32_t cpu = rte_lcore_id();
+	unsigned int cpu, lcore = rte_lcore_id();
 	int ret;
 	struct dpaa_portal *dpaa_io_portal;
 
 	BUS_INIT_FUNC_TRACE();
 
-	if ((size_t)arg == 1 || cpu == LCORE_ID_ANY)
-		cpu = rte_get_master_lcore();
-	/* if the core id is not supported */
+	if ((size_t)arg == 1 || lcore == LCORE_ID_ANY)
+		lcore = rte_get_master_lcore();
 	else
-		if (cpu >= RTE_MAX_LCORE)
+		if (lcore >= RTE_MAX_LCORE)
 			return -1;
 
-	/* Set CPU affinity for this thread */
-	CPU_ZERO(&cpuset);
-	CPU_SET(cpu, &cpuset);
+	cpu = lcore_config[lcore].core_id;
+
+	/* Set CPU affinity for this thread.*/
 	id = pthread_self();
-	ret = pthread_setaffinity_np(id, sizeof(cpu_set_t), &cpuset);
+	ret = pthread_setaffinity_np(id, sizeof(cpu_set_t),
+			&lcore_config[lcore].cpuset);
 	if (ret) {
-		DPAA_BUS_LOG(ERR, "pthread_setaffinity_np failed on "
-			"core :%d with ret: %d", cpu, ret);
+		DPAA_BUS_LOG(ERR, "pthread_setaffinity_np failed on core :%u"
+			     " (lcore=%u) with ret: %d", cpu, lcore, ret);
 		return ret;
 	}
 
 	/* Initialise bman thread portals */
 	ret = bman_thread_init();
 	if (ret) {
-		DPAA_BUS_LOG(ERR, "bman_thread_init failed on "
-			"core %d with ret: %d", cpu, ret);
+		DPAA_BUS_LOG(ERR, "bman_thread_init failed on core %u"
+			     " (lcore=%u) with ret: %d", cpu, lcore, ret);
 		return ret;
 	}
 
-	DPAA_BUS_LOG(DEBUG, "BMAN thread initialized");
+	DPAA_BUS_LOG(DEBUG, "BMAN thread initialized - CPU=%d lcore=%d",
+		     cpu, lcore);
 
 	/* Initialise qman thread portals */
 	ret = qman_thread_init();
 	if (ret) {
-		DPAA_BUS_LOG(ERR, "bman_thread_init failed on "
-			"core %d with ret: %d", cpu, ret);
+		DPAA_BUS_LOG(ERR, "qman_thread_init failed on core %u"
+			    " (lcore=%u) with ret: %d", cpu, lcore, ret);
 		bman_thread_finish();
 		return ret;
 	}
 
-	DPAA_BUS_LOG(DEBUG, "QMAN thread initialized");
+	DPAA_BUS_LOG(DEBUG, "QMAN thread initialized - CPU=%d lcore=%d",
+		     cpu, lcore);
 
 	dpaa_io_portal = rte_malloc(NULL, sizeof(struct dpaa_portal),
 				    RTE_CACHE_LINE_SIZE);
@@ -312,8 +313,8 @@ int rte_dpaa_portal_init(void *arg)
 
 	ret = pthread_setspecific(dpaa_portal_key, (void *)dpaa_io_portal);
 	if (ret) {
-		DPAA_BUS_LOG(ERR, "pthread_setspecific failed on "
-			    "core %d with ret: %d", cpu, ret);
+		DPAA_BUS_LOG(ERR, "pthread_setspecific failed on core %u"
+			     " (lcore=%u) with ret: %d", cpu, lcore, ret);
 		dpaa_portal_finish(NULL);
 
 		return ret;
-- 
2.17.1

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

* [dpdk-dev] [PATCH 2/4] net/dpaa: fix the secondary process
  2018-12-26 11:33 [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements Hemant Agrawal
  2018-12-26 11:33 ` [dpdk-dev] [PATCH 1/4] bus/dpaa: fix the logical to physical core affine logic Hemant Agrawal
@ 2018-12-26 11:33 ` Hemant Agrawal
  2018-12-26 11:33 ` [dpdk-dev] [PATCH 3/4] net/dpaa: update supported ptypes Hemant Agrawal
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Hemant Agrawal @ 2018-12-26 11:33 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Shreyansh Jain, stable

In order to support I/O from secondary process, the
burst APIs and OPS APIs shall be mapped/plugged. This
patch fixes the code to remap the ops and burst apis.

Fixes: ff9e112d7870 ("net/dpaa: add NXP DPAA PMD driver skeleton")
Cc: stable@dpdk.org

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa/dpaa_ethdev.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index d0572b3d9..5448a2ca7 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -1223,8 +1223,12 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 	PMD_INIT_FUNC_TRACE();
 
 	/* For secondary processes, the primary has done all the work */
-	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+		eth_dev->dev_ops = &dpaa_devops;
+		/* Plugging of UCODE burst API not supported in Secondary */
+		eth_dev->rx_pkt_burst = dpaa_eth_queue_rx;
 		return 0;
+	}
 
 	dpaa_device = DEV_TO_DPAA_DEVICE(eth_dev->device);
 	dev_id = dpaa_device->id.dev_id;
-- 
2.17.1

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

* [dpdk-dev] [PATCH 3/4] net/dpaa: update supported ptypes
  2018-12-26 11:33 [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements Hemant Agrawal
  2018-12-26 11:33 ` [dpdk-dev] [PATCH 1/4] bus/dpaa: fix the logical to physical core affine logic Hemant Agrawal
  2018-12-26 11:33 ` [dpdk-dev] [PATCH 2/4] net/dpaa: fix the secondary process Hemant Agrawal
@ 2018-12-26 11:33 ` Hemant Agrawal
  2018-12-26 11:33 ` [dpdk-dev] [PATCH 4/4] net/dpaa: update RSS offload types Hemant Agrawal
  2019-01-04 12:25 ` [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements Shreyansh Jain
  4 siblings, 0 replies; 6+ messages in thread
From: Hemant Agrawal @ 2018-12-26 11:33 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Shreyansh Jain

Validated and tested additional packet type for the DPAA
platform.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa/dpaa_ethdev.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 5448a2ca7..ba66aa2a0 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -245,12 +245,15 @@ static const uint32_t *
 dpaa_supported_ptypes_get(struct rte_eth_dev *dev)
 {
 	static const uint32_t ptypes[] = {
-		/*todo -= add more types */
 		RTE_PTYPE_L2_ETHER,
-		RTE_PTYPE_L3_IPV4,
-		RTE_PTYPE_L3_IPV4_EXT,
-		RTE_PTYPE_L3_IPV6,
-		RTE_PTYPE_L3_IPV6_EXT,
+		RTE_PTYPE_L2_ETHER_VLAN,
+		RTE_PTYPE_L2_ETHER_ARP,
+		RTE_PTYPE_L3_IPV4_EXT_UNKNOWN,
+		RTE_PTYPE_L3_IPV6_EXT_UNKNOWN,
+		RTE_PTYPE_L4_ICMP,
+		RTE_PTYPE_L4_TCP,
+		RTE_PTYPE_L4_UDP,
+		RTE_PTYPE_L4_FRAG,
 		RTE_PTYPE_L4_TCP,
 		RTE_PTYPE_L4_UDP,
 		RTE_PTYPE_L4_SCTP
-- 
2.17.1

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

* [dpdk-dev] [PATCH 4/4] net/dpaa: update RSS offload types
  2018-12-26 11:33 [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements Hemant Agrawal
                   ` (2 preceding siblings ...)
  2018-12-26 11:33 ` [dpdk-dev] [PATCH 3/4] net/dpaa: update supported ptypes Hemant Agrawal
@ 2018-12-26 11:33 ` Hemant Agrawal
  2019-01-04 12:25 ` [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements Shreyansh Jain
  4 siblings, 0 replies; 6+ messages in thread
From: Hemant Agrawal @ 2018-12-26 11:33 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, Shreyansh Jain

Validated and tested additional offload flags for RSS
configuration.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa/dpaa_ethdev.h | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h
index 2fc723171..e906a0bec 100644
--- a/drivers/net/dpaa/dpaa_ethdev.h
+++ b/drivers/net/dpaa/dpaa_ethdev.h
@@ -79,10 +79,14 @@
 #define DPAA_DEBUG_FQ_TX_ERROR   1
 
 #define DPAA_RSS_OFFLOAD_ALL ( \
-	ETH_RSS_IP | \
-	ETH_RSS_UDP | \
-	ETH_RSS_TCP | \
-	ETH_RSS_SCTP)
+	ETH_RSS_FRAG_IPV4 | \
+	ETH_RSS_NONFRAG_IPV4_TCP | \
+	ETH_RSS_NONFRAG_IPV4_UDP | \
+	ETH_RSS_NONFRAG_IPV4_SCTP | \
+	ETH_RSS_FRAG_IPV6 | \
+	ETH_RSS_NONFRAG_IPV6_TCP | \
+	ETH_RSS_NONFRAG_IPV6_UDP | \
+	ETH_RSS_NONFRAG_IPV6_SCTP)
 
 #define DPAA_TX_CKSUM_OFFLOAD_MASK (             \
 		PKT_TX_IP_CKSUM |                \
-- 
2.17.1

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

* Re: [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements
  2018-12-26 11:33 [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements Hemant Agrawal
                   ` (3 preceding siblings ...)
  2018-12-26 11:33 ` [dpdk-dev] [PATCH 4/4] net/dpaa: update RSS offload types Hemant Agrawal
@ 2019-01-04 12:25 ` Shreyansh Jain
  4 siblings, 0 replies; 6+ messages in thread
From: Shreyansh Jain @ 2019-01-04 12:25 UTC (permalink / raw)
  To: Hemant Agrawal; +Cc: dev, ferruh.yigit

On Wednesday 26 December 2018 05:03 PM, Hemant Agrawal wrote:
> Few fixes and minor enhancements in NXP DPAA driver
> 
> Hemant Agrawal (4):
>    bus/dpaa: fix the logical to physical core affine logic
>    net/dpaa: fix the secondary process
>    net/dpaa: update supported ptypes
>    net/dpaa: update RSS offload types
> 
>   drivers/bus/dpaa/dpaa_bus.c    | 41 +++++++++++++++++-----------------
>   drivers/net/dpaa/dpaa_ethdev.c | 19 +++++++++++-----
>   drivers/net/dpaa/dpaa_ethdev.h | 12 ++++++----
>   3 files changed, 42 insertions(+), 30 deletions(-)
> 

Series-Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>

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

end of thread, other threads:[~2019-01-04 12:25 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-26 11:33 [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements Hemant Agrawal
2018-12-26 11:33 ` [dpdk-dev] [PATCH 1/4] bus/dpaa: fix the logical to physical core affine logic Hemant Agrawal
2018-12-26 11:33 ` [dpdk-dev] [PATCH 2/4] net/dpaa: fix the secondary process Hemant Agrawal
2018-12-26 11:33 ` [dpdk-dev] [PATCH 3/4] net/dpaa: update supported ptypes Hemant Agrawal
2018-12-26 11:33 ` [dpdk-dev] [PATCH 4/4] net/dpaa: update RSS offload types Hemant Agrawal
2019-01-04 12:25 ` [dpdk-dev] [PATCH 0/4] NXP DPAA fixes and enhancements Shreyansh Jain

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).