DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow
@ 2020-07-01  6:06 Apeksha Gupta
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 2/6] app/test-eventdev: Removed unwanted checks Apeksha Gupta
                   ` (5 more replies)
  0 siblings, 6 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-01  6:06 UTC (permalink / raw)
  To: jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, akhil.goyal,
	Apeksha Gupta, stable

The event ethernet Tx adapter provides data path for the ethernet transmit
stage. Enqueue a burst of events objects supplied on an event device.

Fixes: 2369f73329 ("app/testeventdev: add perf queue worker functions")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
---
 app/test-eventdev/test_perf_common.c | 11 ++++++++
 app/test-eventdev/test_perf_common.h |  1 +
 app/test-eventdev/test_perf_queue.c  | 42 ++++++++++++++++++++--------
 3 files changed, 43 insertions(+), 11 deletions(-)

diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c
index b3af4bfeca..341e16eade 100644
--- a/app/test-eventdev/test_perf_common.c
+++ b/app/test-eventdev/test_perf_common.c
@@ -687,9 +687,20 @@ perf_ethdev_setup(struct evt_test *test, struct evt_options *opt)
 		return -ENODEV;
 	}
 
+	t->internal_port = 1;
 	RTE_ETH_FOREACH_DEV(i) {
 		struct rte_eth_dev_info dev_info;
 		struct rte_eth_conf local_port_conf = port_conf;
+		uint32_t caps = 0;
+
+		ret = rte_event_eth_tx_adapter_caps_get(opt->dev_id, i, &caps);
+		if (ret != 0) {
+			evt_err("failed to get event tx adapter[%d] caps", i);
+			return ret;
+		}
+
+		if (!(caps & RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT))
+			t->internal_port = 0;
 
 		ret = rte_eth_dev_info_get(i, &dev_info);
 		if (ret != 0) {
diff --git a/app/test-eventdev/test_perf_common.h b/app/test-eventdev/test_perf_common.h
index d8fbee6d89..716199d8c9 100644
--- a/app/test-eventdev/test_perf_common.h
+++ b/app/test-eventdev/test_perf_common.h
@@ -48,6 +48,7 @@ struct test_perf {
 	int done;
 	uint64_t outstand_pkts;
 	uint8_t nb_workers;
+	uint8_t internal_port;
 	enum evt_test_result result;
 	uint32_t nb_flows;
 	uint64_t nb_pkts;
diff --git a/app/test-eventdev/test_perf_queue.c b/app/test-eventdev/test_perf_queue.c
index 29098580e7..f79e4a4164 100644
--- a/app/test-eventdev/test_perf_queue.c
+++ b/app/test-eventdev/test_perf_queue.c
@@ -71,10 +71,12 @@ perf_queue_worker(void *arg, const int enable_fwd_latency)
 }
 
 static int
-perf_queue_worker_burst(void *arg, const int enable_fwd_latency)
+perf_queue_worker_burst(void *arg, const int enable_fwd_latency,
+					const uint32_t flags)
 {
 	PERF_WORKER_INIT;
 	uint16_t i;
+	uint16_t nb_tx;
 	/* +1 to avoid prefetch out of array check */
 	struct rte_event ev[BURST_SIZE + 1];
 
@@ -111,12 +113,20 @@ perf_queue_worker_burst(void *arg, const int enable_fwd_latency)
 			}
 		}
 
-		uint16_t enq;
-
-		enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
-		while (enq < nb_rx) {
-			enq += rte_event_enqueue_burst(dev, port,
+		if (flags == TEST_PERF_EVENT_TX_DIRECT) {
+			nb_tx = rte_event_eth_tx_adapter_enqueue(dev, port,
+								ev, nb_rx, 0);
+			while (nb_tx < nb_rx && !t->done)
+				nb_tx += rte_event_eth_tx_adapter_enqueue(dev,
+							port, ev + nb_tx,
+							nb_rx - nb_tx, 0);
+		} else {
+			uint16_t enq;
+			enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
+			while (enq < nb_rx) {
+				enq += rte_event_enqueue_burst(dev, port,
 							ev + enq, nb_rx - enq);
+			}
 		}
 	}
 	return 0;
@@ -130,16 +140,26 @@ worker_wrapper(void *arg)
 
 	const bool burst = evt_has_burst_mode(w->dev_id);
 	const int fwd_latency = opt->fwd_latency;
-
+	const bool internal_port = w->t->internal_port;
+	uint32_t flags;
 	/* allow compiler to optimize */
 	if (!burst && !fwd_latency)
 		return perf_queue_worker(arg, 0);
 	else if (!burst && fwd_latency)
 		return perf_queue_worker(arg, 1);
-	else if (burst && !fwd_latency)
-		return perf_queue_worker_burst(arg, 0);
-	else if (burst && fwd_latency)
-		return perf_queue_worker_burst(arg, 1);
+	else if (burst && !fwd_latency && internal_port) {
+		flags = TEST_PERF_EVENT_TX_DIRECT;
+		return perf_queue_worker_burst(arg, 0, flags);
+	} else if (burst && !fwd_latency && !internal_port) {
+		flags = TEST_PERF_EVENT_TX_ENQ;
+		return perf_queue_worker_burst(arg, 1, flags);
+	} else if (burst && fwd_latency && internal_port) {
+		flags = TEST_PERF_EVENT_TX_DIRECT;
+		return perf_queue_worker_burst(arg, 0, flags);
+	} else if (burst && fwd_latency && !internal_port) {
+		flags = TEST_PERF_EVENT_TX_ENQ;
+		return perf_queue_worker_burst(arg, 1, flags);
+	}
 
 	rte_panic("invalid worker\n");
 }
-- 
2.17.1


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

* [dpdk-dev] [PATCH 2/6] app/test-eventdev: Removed unwanted checks
  2020-07-01  6:06 [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Apeksha Gupta
@ 2020-07-01  6:06 ` Apeksha Gupta
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 3/6] event/dpaa2: Add all type queue capability flag Apeksha Gupta
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-01  6:06 UTC (permalink / raw)
  To: jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, akhil.goyal,
	Apeksha Gupta, stable

In pipeline_queue test case, for single_stage_burst_tx sched_type
condition checks are not required.

Fixes: 314bcf58ca8 ("app/eventdev: add pipeline queue worker functions")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
---
 app/test-eventdev/test_pipeline_queue.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/app/test-eventdev/test_pipeline_queue.c b/app/test-eventdev/test_pipeline_queue.c
index 7bebac34fc..bee4ac0344 100644
--- a/app/test-eventdev/test_pipeline_queue.c
+++ b/app/test-eventdev/test_pipeline_queue.c
@@ -81,20 +81,11 @@ pipeline_queue_worker_single_stage_burst_tx(void *arg)
 
 		for (i = 0; i < nb_rx; i++) {
 			rte_prefetch0(ev[i + 1].mbuf);
-			if (ev[i].sched_type == RTE_SCHED_TYPE_ATOMIC) {
 				pipeline_event_tx(dev, port, &ev[i]);
 				ev[i].op = RTE_EVENT_OP_RELEASE;
 				w->processed_pkts++;
-			} else {
-				ev[i].queue_id++;
-				pipeline_fwd_event(&ev[i],
-						RTE_SCHED_TYPE_ATOMIC);
 			}
 		}
-
-		pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
-	}
-
 	return 0;
 }
 
-- 
2.17.1


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

* [dpdk-dev] [PATCH 3/6] event/dpaa2: Add all type queue capability flag
  2020-07-01  6:06 [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Apeksha Gupta
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 2/6] app/test-eventdev: Removed unwanted checks Apeksha Gupta
@ 2020-07-01  6:06 ` Apeksha Gupta
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 4/6] app/test-eventdev: Fix pipeline atq Apeksha Gupta
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-01  6:06 UTC (permalink / raw)
  To: jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, akhil.goyal,
	Apeksha Gupta, stable

Event device capability flag added in event driver,
Event device is capable of enqueuing events of any type to any queue.

Fixes: 8f4a294c23 ("event/dpaa2: apply new capability flags")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
---
 drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
index 0072db153b..14dcc50d4a 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.c
+++ b/drivers/event/dpaa2/dpaa2_eventdev.c
@@ -407,7 +407,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev,
 		RTE_EVENT_DEV_CAP_BURST_MODE|
 		RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK |
 		RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT |
-		RTE_EVENT_DEV_CAP_NONSEQ_MODE;
+		RTE_EVENT_DEV_CAP_NONSEQ_MODE |
+		RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES;
 
 }
 
-- 
2.17.1


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

* [dpdk-dev] [PATCH 4/6] app/test-eventdev: Fix pipeline atq
  2020-07-01  6:06 [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Apeksha Gupta
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 2/6] app/test-eventdev: Removed unwanted checks Apeksha Gupta
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 3/6] event/dpaa2: Add all type queue capability flag Apeksha Gupta
@ 2020-07-01  6:06 ` Apeksha Gupta
  2020-07-10 13:08   ` [dpdk-dev] [PATCH v2] " Apeksha Gupta
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 5/6] app/test-eventdev: Enhancing perf-atq packet flow Apeksha Gupta
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-01  6:06 UTC (permalink / raw)
  To: jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, akhil.goyal,
	Apeksha Gupta, stable

if-check is required to check the capabilitiy of all type queue.

Fixes: 6bf570a9911 ("app/eventdev: add pipeline atq test")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
---
 app/test-eventdev/test_pipeline_atq.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/app/test-eventdev/test_pipeline_atq.c b/app/test-eventdev/test_pipeline_atq.c
index 8e8686c145..0872b25b53 100644
--- a/app/test-eventdev/test_pipeline_atq.c
+++ b/app/test-eventdev/test_pipeline_atq.c
@@ -495,6 +495,8 @@ pipeline_atq_capability_check(struct evt_options *opt)
 			evt_nr_active_lcores(opt->wlcores),
 			dev_info.max_event_ports);
 	}
+	if (!evt_has_all_types_queue(opt->dev_id))
+		return false;
 
 	return true;
 }
-- 
2.17.1


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

* [dpdk-dev] [PATCH 5/6] app/test-eventdev: Enhancing perf-atq packet flow
  2020-07-01  6:06 [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Apeksha Gupta
                   ` (2 preceding siblings ...)
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 4/6] app/test-eventdev: Fix pipeline atq Apeksha Gupta
@ 2020-07-01  6:06 ` Apeksha Gupta
  2020-07-02  3:25   ` Pavan Nikhilesh Bhagavatula
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 6/6] app/test-eventdev: fix eventdev queues Apeksha Gupta
  2020-07-02  3:24 ` [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Pavan Nikhilesh Bhagavatula
  5 siblings, 1 reply; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-01  6:06 UTC (permalink / raw)
  To: jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, akhil.goyal,
	Apeksha Gupta, stable

The event ethernet Tx adapter provides data path for the ethernet transmit
stage. Enqueue a burst of events objects supplied on an event device.

Fixes: 1eb10ad8db8 ("app/testeventdev: add perf all types queue worker")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
---
 app/test-eventdev/test_perf_atq.c    | 43 ++++++++++++++++++++--------
 app/test-eventdev/test_perf_common.h |  4 +++
 2 files changed, 35 insertions(+), 12 deletions(-)

diff --git a/app/test-eventdev/test_perf_atq.c b/app/test-eventdev/test_perf_atq.c
index d0241ec4ae..23e9ad4a29 100644
--- a/app/test-eventdev/test_perf_atq.c
+++ b/app/test-eventdev/test_perf_atq.c
@@ -70,10 +70,12 @@ perf_atq_worker(void *arg, const int enable_fwd_latency)
 }
 
 static int
-perf_atq_worker_burst(void *arg, const int enable_fwd_latency)
+perf_atq_worker_burst(void *arg, const int enable_fwd_latency,
+					const uint32_t flags)
 {
 	PERF_WORKER_INIT;
 	uint16_t i;
+	uint16_t nb_tx;
 	/* +1 to avoid prefetch out of array check */
 	struct rte_event ev[BURST_SIZE + 1];
 
@@ -110,13 +112,21 @@ perf_atq_worker_burst(void *arg, const int enable_fwd_latency)
 						nb_stages);
 			}
 		}
+		if (flags == TEST_PERF_EVENT_TX_DIRECT) {
+			nb_tx = rte_event_eth_tx_adapter_enqueue(dev, port,
+						ev, nb_rx, 0);
+			while (nb_tx < nb_rx && !t->done)
+				nb_tx += rte_event_eth_tx_adapter_enqueue(dev,
+						port, ev + nb_tx,
+						nb_rx - nb_tx, 0);
+		} else {
+			uint16_t enq;
 
-		uint16_t enq;
-
-		enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
-		while (enq < nb_rx) {
-			enq += rte_event_enqueue_burst(dev, port,
+			enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
+			while (enq < nb_rx) {
+				enq += rte_event_enqueue_burst(dev, port,
 							ev + enq, nb_rx - enq);
+			}
 		}
 	}
 	return 0;
@@ -127,20 +137,29 @@ worker_wrapper(void *arg)
 {
 	struct worker_data *w  = arg;
 	struct evt_options *opt = w->t->opt;
-
+	const bool internal_port = w->t->internal_port;
 	const bool burst = evt_has_burst_mode(w->dev_id);
 	const int fwd_latency = opt->fwd_latency;
+	uint32_t flags;
 
 	/* allow compiler to optimize */
 	if (!burst && !fwd_latency)
 		return perf_atq_worker(arg, 0);
 	else if (!burst && fwd_latency)
 		return perf_atq_worker(arg, 1);
-	else if (burst && !fwd_latency)
-		return perf_atq_worker_burst(arg, 0);
-	else if (burst && fwd_latency)
-		return perf_atq_worker_burst(arg, 1);
-
+	else if (burst && !fwd_latency && internal_port) {
+		flags = TEST_PERF_EVENT_TX_DIRECT;
+		return perf_atq_worker_burst(arg, 0, flags);
+	} else if (burst && !fwd_latency && !internal_port) {
+		flags = TEST_PERF_EVENT_TX_ENQ;
+		return perf_atq_worker_burst(arg, 1, flags);
+	} else if (burst && fwd_latency && internal_port) {
+		flags = TEST_PERF_EVENT_TX_DIRECT;
+		return perf_atq_worker_burst(arg, 0, flags);
+	} else if (burst && fwd_latency && !internal_port) {
+		flags = TEST_PERF_EVENT_TX_ENQ;
+		return perf_atq_worker_burst(arg, 1, flags);
+	}
 	rte_panic("invalid worker\n");
 }
 
diff --git a/app/test-eventdev/test_perf_common.h b/app/test-eventdev/test_perf_common.h
index 716199d8c9..c86be385ad 100644
--- a/app/test-eventdev/test_perf_common.h
+++ b/app/test-eventdev/test_perf_common.h
@@ -13,6 +13,7 @@
 #include <rte_ethdev.h>
 #include <rte_eventdev.h>
 #include <rte_event_eth_rx_adapter.h>
+#include <rte_event_eth_tx_adapter.h>
 #include <rte_event_timer_adapter.h>
 #include <rte_lcore.h>
 #include <rte_malloc.h>
@@ -23,6 +24,9 @@
 #include "evt_options.h"
 #include "evt_test.h"
 
+#define TEST_PERF_EVENT_TX_ENQ		0x1
+#define TEST_PERF_EVENT_TX_DIRECT	0X2
+
 struct test_perf;
 
 struct worker_data {
-- 
2.17.1


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

* [dpdk-dev] [PATCH 6/6] app/test-eventdev: fix eventdev queues
  2020-07-01  6:06 [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Apeksha Gupta
                   ` (3 preceding siblings ...)
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 5/6] app/test-eventdev: Enhancing perf-atq packet flow Apeksha Gupta
@ 2020-07-01  6:06 ` Apeksha Gupta
  2020-07-02  3:27   ` Pavan Nikhilesh Bhagavatula
  2020-07-02  3:24 ` [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Pavan Nikhilesh Bhagavatula
  5 siblings, 1 reply; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-01  6:06 UTC (permalink / raw)
  To: jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, akhil.goyal,
	Apeksha Gupta, stable

In pipeline_queue test case, if event queues are greater than the
max event queues it will fail. To handle this check is added.

Fixes: 032a965a8f1 ("app/eventdev: support Tx adapter")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
---
 app/test-eventdev/test_pipeline_queue.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/app/test-eventdev/test_pipeline_queue.c b/app/test-eventdev/test_pipeline_queue.c
index bee4ac0344..b958953bf9 100644
--- a/app/test-eventdev/test_pipeline_queue.c
+++ b/app/test-eventdev/test_pipeline_queue.c
@@ -325,6 +325,9 @@ pipeline_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt)
 	memset(queue_arr, 0, sizeof(uint8_t) * RTE_EVENT_MAX_QUEUES_PER_DEV);
 
 	rte_event_dev_info_get(opt->dev_id, &info);
+	if (nb_queues > info.max_event_queues)
+		nb_queues = nb_stages;
+
 	ret = evt_configure_eventdev(opt, nb_queues, nb_ports);
 	if (ret) {
 		evt_err("failed to configure eventdev %d", opt->dev_id);
-- 
2.17.1


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

* Re: [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow
  2020-07-01  6:06 [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Apeksha Gupta
                   ` (4 preceding siblings ...)
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 6/6] app/test-eventdev: fix eventdev queues Apeksha Gupta
@ 2020-07-02  3:24 ` Pavan Nikhilesh Bhagavatula
  2020-07-02 14:46   ` [dpdk-dev] [EXT] " Apeksha Gupta
  5 siblings, 1 reply; 22+ messages in thread
From: Pavan Nikhilesh Bhagavatula @ 2020-07-02  3:24 UTC (permalink / raw)
  To: Apeksha Gupta, jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, akhil.goyal, stable

>Subject: [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-
>queue packet flow
>
>The event ethernet Tx adapter provides data path for the ethernet
>transmit
>stage. Enqueue a burst of events objects supplied on an event device.
>

NAK, please use pipeline_atq/queue to test Rx->Tx performance.
Perf_atq/queue should only be used to test event device performance/latency such as
<event_src(CPU/Rx/timer)> -> worker.

>Fixes: 2369f73329 ("app/testeventdev: add perf queue worker
>functions")
>Cc: stable@dpdk.org
>
>Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
>---
> app/test-eventdev/test_perf_common.c | 11 ++++++++
> app/test-eventdev/test_perf_common.h |  1 +
> app/test-eventdev/test_perf_queue.c  | 42 ++++++++++++++++++++---
>-----
> 3 files changed, 43 insertions(+), 11 deletions(-)
>
>diff --git a/app/test-eventdev/test_perf_common.c b/app/test-
>eventdev/test_perf_common.c
>index b3af4bfeca..341e16eade 100644
>--- a/app/test-eventdev/test_perf_common.c
>+++ b/app/test-eventdev/test_perf_common.c
>@@ -687,9 +687,20 @@ perf_ethdev_setup(struct evt_test *test,
>struct evt_options *opt)
> 		return -ENODEV;
> 	}
>
>+	t->internal_port = 1;
> 	RTE_ETH_FOREACH_DEV(i) {
> 		struct rte_eth_dev_info dev_info;
> 		struct rte_eth_conf local_port_conf = port_conf;
>+		uint32_t caps = 0;
>+
>+		ret = rte_event_eth_tx_adapter_caps_get(opt->dev_id,
>i, &caps);
>+		if (ret != 0) {
>+			evt_err("failed to get event tx adapter[%d]
>caps", i);
>+			return ret;
>+		}
>+
>+		if (!(caps &
>RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT))
>+			t->internal_port = 0;
>
> 		ret = rte_eth_dev_info_get(i, &dev_info);
> 		if (ret != 0) {
>diff --git a/app/test-eventdev/test_perf_common.h b/app/test-
>eventdev/test_perf_common.h
>index d8fbee6d89..716199d8c9 100644
>--- a/app/test-eventdev/test_perf_common.h
>+++ b/app/test-eventdev/test_perf_common.h
>@@ -48,6 +48,7 @@ struct test_perf {
> 	int done;
> 	uint64_t outstand_pkts;
> 	uint8_t nb_workers;
>+	uint8_t internal_port;
> 	enum evt_test_result result;
> 	uint32_t nb_flows;
> 	uint64_t nb_pkts;
>diff --git a/app/test-eventdev/test_perf_queue.c b/app/test-
>eventdev/test_perf_queue.c
>index 29098580e7..f79e4a4164 100644
>--- a/app/test-eventdev/test_perf_queue.c
>+++ b/app/test-eventdev/test_perf_queue.c
>@@ -71,10 +71,12 @@ perf_queue_worker(void *arg, const int
>enable_fwd_latency)
> }
>
> static int
>-perf_queue_worker_burst(void *arg, const int enable_fwd_latency)
>+perf_queue_worker_burst(void *arg, const int enable_fwd_latency,
>+					const uint32_t flags)
> {
> 	PERF_WORKER_INIT;
> 	uint16_t i;
>+	uint16_t nb_tx;
> 	/* +1 to avoid prefetch out of array check */
> 	struct rte_event ev[BURST_SIZE + 1];
>
>@@ -111,12 +113,20 @@ perf_queue_worker_burst(void *arg, const
>int enable_fwd_latency)
> 			}
> 		}
>
>-		uint16_t enq;
>-
>-		enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
>-		while (enq < nb_rx) {
>-			enq += rte_event_enqueue_burst(dev, port,
>+		if (flags == TEST_PERF_EVENT_TX_DIRECT) {
>+			nb_tx =
>rte_event_eth_tx_adapter_enqueue(dev, port,
>+								ev,
>nb_rx, 0);
>+			while (nb_tx < nb_rx && !t->done)
>+				nb_tx +=
>rte_event_eth_tx_adapter_enqueue(dev,
>+							port, ev +
>nb_tx,
>+							nb_rx - nb_tx,
>0);
>+		} else {
>+			uint16_t enq;
>+			enq = rte_event_enqueue_burst(dev, port, ev,
>nb_rx);
>+			while (enq < nb_rx) {
>+				enq += rte_event_enqueue_burst(dev,
>port,
> 							ev + enq, nb_rx
>- enq);
>+			}
> 		}
> 	}
> 	return 0;
>@@ -130,16 +140,26 @@ worker_wrapper(void *arg)
>
> 	const bool burst = evt_has_burst_mode(w->dev_id);
> 	const int fwd_latency = opt->fwd_latency;
>-
>+	const bool internal_port = w->t->internal_port;
>+	uint32_t flags;
> 	/* allow compiler to optimize */
> 	if (!burst && !fwd_latency)
> 		return perf_queue_worker(arg, 0);
> 	else if (!burst && fwd_latency)
> 		return perf_queue_worker(arg, 1);
>-	else if (burst && !fwd_latency)
>-		return perf_queue_worker_burst(arg, 0);
>-	else if (burst && fwd_latency)
>-		return perf_queue_worker_burst(arg, 1);
>+	else if (burst && !fwd_latency && internal_port) {
>+		flags = TEST_PERF_EVENT_TX_DIRECT;
>+		return perf_queue_worker_burst(arg, 0, flags);
>+	} else if (burst && !fwd_latency && !internal_port) {
>+		flags = TEST_PERF_EVENT_TX_ENQ;
>+		return perf_queue_worker_burst(arg, 1, flags);
>+	} else if (burst && fwd_latency && internal_port) {
>+		flags = TEST_PERF_EVENT_TX_DIRECT;
>+		return perf_queue_worker_burst(arg, 0, flags);
>+	} else if (burst && fwd_latency && !internal_port) {
>+		flags = TEST_PERF_EVENT_TX_ENQ;
>+		return perf_queue_worker_burst(arg, 1, flags);
>+	}
>
> 	rte_panic("invalid worker\n");
> }
>--
>2.17.1


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

* Re: [dpdk-dev] [PATCH 5/6] app/test-eventdev: Enhancing perf-atq packet flow
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 5/6] app/test-eventdev: Enhancing perf-atq packet flow Apeksha Gupta
@ 2020-07-02  3:25   ` Pavan Nikhilesh Bhagavatula
  2020-07-02 14:46     ` [dpdk-dev] [EXT] " Apeksha Gupta
  0 siblings, 1 reply; 22+ messages in thread
From: Pavan Nikhilesh Bhagavatula @ 2020-07-02  3:25 UTC (permalink / raw)
  To: Apeksha Gupta, jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, akhil.goyal, stable

>Subject: [dpdk-dev] [PATCH 5/6] app/test-eventdev: Enhancing perf-atq
>packet flow
>
>The event ethernet Tx adapter provides data path for the ethernet
>transmit
>stage. Enqueue a burst of events objects supplied on an event device.

NAK, same as 1/6 use pipeline_atq/queue to test Rx->Tx performace.

>
>Fixes: 1eb10ad8db8 ("app/testeventdev: add perf all types queue
>worker")
>Cc: stable@dpdk.org
>
>Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
>---
> app/test-eventdev/test_perf_atq.c    | 43 ++++++++++++++++++++------
>--
> app/test-eventdev/test_perf_common.h |  4 +++
> 2 files changed, 35 insertions(+), 12 deletions(-)
>
>diff --git a/app/test-eventdev/test_perf_atq.c b/app/test-
>eventdev/test_perf_atq.c
>index d0241ec4ae..23e9ad4a29 100644
>--- a/app/test-eventdev/test_perf_atq.c
>+++ b/app/test-eventdev/test_perf_atq.c
>@@ -70,10 +70,12 @@ perf_atq_worker(void *arg, const int
>enable_fwd_latency)
> }
>
> static int
>-perf_atq_worker_burst(void *arg, const int enable_fwd_latency)
>+perf_atq_worker_burst(void *arg, const int enable_fwd_latency,
>+					const uint32_t flags)
> {
> 	PERF_WORKER_INIT;
> 	uint16_t i;
>+	uint16_t nb_tx;
> 	/* +1 to avoid prefetch out of array check */
> 	struct rte_event ev[BURST_SIZE + 1];
>
>@@ -110,13 +112,21 @@ perf_atq_worker_burst(void *arg, const int
>enable_fwd_latency)
> 						nb_stages);
> 			}
> 		}
>+		if (flags == TEST_PERF_EVENT_TX_DIRECT) {
>+			nb_tx =
>rte_event_eth_tx_adapter_enqueue(dev, port,
>+						ev, nb_rx, 0);
>+			while (nb_tx < nb_rx && !t->done)
>+				nb_tx +=
>rte_event_eth_tx_adapter_enqueue(dev,
>+						port, ev + nb_tx,
>+						nb_rx - nb_tx, 0);
>+		} else {
>+			uint16_t enq;
>
>-		uint16_t enq;
>-
>-		enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
>-		while (enq < nb_rx) {
>-			enq += rte_event_enqueue_burst(dev, port,
>+			enq = rte_event_enqueue_burst(dev, port, ev,
>nb_rx);
>+			while (enq < nb_rx) {
>+				enq += rte_event_enqueue_burst(dev,
>port,
> 							ev + enq, nb_rx
>- enq);
>+			}
> 		}
> 	}
> 	return 0;
>@@ -127,20 +137,29 @@ worker_wrapper(void *arg)
> {
> 	struct worker_data *w  = arg;
> 	struct evt_options *opt = w->t->opt;
>-
>+	const bool internal_port = w->t->internal_port;
> 	const bool burst = evt_has_burst_mode(w->dev_id);
> 	const int fwd_latency = opt->fwd_latency;
>+	uint32_t flags;
>
> 	/* allow compiler to optimize */
> 	if (!burst && !fwd_latency)
> 		return perf_atq_worker(arg, 0);
> 	else if (!burst && fwd_latency)
> 		return perf_atq_worker(arg, 1);
>-	else if (burst && !fwd_latency)
>-		return perf_atq_worker_burst(arg, 0);
>-	else if (burst && fwd_latency)
>-		return perf_atq_worker_burst(arg, 1);
>-
>+	else if (burst && !fwd_latency && internal_port) {
>+		flags = TEST_PERF_EVENT_TX_DIRECT;
>+		return perf_atq_worker_burst(arg, 0, flags);
>+	} else if (burst && !fwd_latency && !internal_port) {
>+		flags = TEST_PERF_EVENT_TX_ENQ;
>+		return perf_atq_worker_burst(arg, 1, flags);
>+	} else if (burst && fwd_latency && internal_port) {
>+		flags = TEST_PERF_EVENT_TX_DIRECT;
>+		return perf_atq_worker_burst(arg, 0, flags);
>+	} else if (burst && fwd_latency && !internal_port) {
>+		flags = TEST_PERF_EVENT_TX_ENQ;
>+		return perf_atq_worker_burst(arg, 1, flags);
>+	}
> 	rte_panic("invalid worker\n");
> }
>
>diff --git a/app/test-eventdev/test_perf_common.h b/app/test-
>eventdev/test_perf_common.h
>index 716199d8c9..c86be385ad 100644
>--- a/app/test-eventdev/test_perf_common.h
>+++ b/app/test-eventdev/test_perf_common.h
>@@ -13,6 +13,7 @@
> #include <rte_ethdev.h>
> #include <rte_eventdev.h>
> #include <rte_event_eth_rx_adapter.h>
>+#include <rte_event_eth_tx_adapter.h>
> #include <rte_event_timer_adapter.h>
> #include <rte_lcore.h>
> #include <rte_malloc.h>
>@@ -23,6 +24,9 @@
> #include "evt_options.h"
> #include "evt_test.h"
>
>+#define TEST_PERF_EVENT_TX_ENQ		0x1
>+#define TEST_PERF_EVENT_TX_DIRECT	0X2
>+
> struct test_perf;
>
> struct worker_data {
>--
>2.17.1


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

* Re: [dpdk-dev] [PATCH 6/6] app/test-eventdev: fix eventdev queues
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 6/6] app/test-eventdev: fix eventdev queues Apeksha Gupta
@ 2020-07-02  3:27   ` Pavan Nikhilesh Bhagavatula
  2020-07-09 13:05     ` [dpdk-dev] [EXT] " Apeksha Gupta
  0 siblings, 1 reply; 22+ messages in thread
From: Pavan Nikhilesh Bhagavatula @ 2020-07-02  3:27 UTC (permalink / raw)
  To: Apeksha Gupta, jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, akhil.goyal, stable

>Subject: [dpdk-dev] [PATCH 6/6] app/test-eventdev: fix eventdev
>queues
>
>In pipeline_queue test case, if event queues are greater than the
>max event queues it will fail. 

Nak, it should fail. If sufficient queues are not available how would the pipeline work?

	/*
	 * The pipelines are setup in the following manner:
	 *
	 * eth_dev_count = 2, nb_stages = 2.
	 *
	 *	queues = 6
	 *	stride = 3
	 *
	 *	event queue pipelines:
	 *	eth0 -> q0 -> q1 -> (q2->tx)
	 *	eth1 -> q3 -> q4 -> (q5->tx)
	 *
	 *	q2, q5 configured as ATOMIC | SINGLE_LINK
	 *
	 */


>To handle this check is added.
>
>Fixes: 032a965a8f1 ("app/eventdev: support Tx adapter")
>Cc: stable@dpdk.org
>
>Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
>---
> app/test-eventdev/test_pipeline_queue.c | 3 +++
> 1 file changed, 3 insertions(+)
>
>diff --git a/app/test-eventdev/test_pipeline_queue.c b/app/test-
>eventdev/test_pipeline_queue.c
>index bee4ac0344..b958953bf9 100644
>--- a/app/test-eventdev/test_pipeline_queue.c
>+++ b/app/test-eventdev/test_pipeline_queue.c
>@@ -325,6 +325,9 @@ pipeline_queue_eventdev_setup(struct evt_test
>*test, struct evt_options *opt)
> 	memset(queue_arr, 0, sizeof(uint8_t) *
>RTE_EVENT_MAX_QUEUES_PER_DEV);
>
> 	rte_event_dev_info_get(opt->dev_id, &info);
>+	if (nb_queues > info.max_event_queues)
>+		nb_queues = nb_stages;
>+
> 	ret = evt_configure_eventdev(opt, nb_queues, nb_ports);
> 	if (ret) {
> 		evt_err("failed to configure eventdev %d", opt-
>>dev_id);
>--
>2.17.1


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

* Re: [dpdk-dev] [EXT] RE: [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow
  2020-07-02  3:24 ` [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Pavan Nikhilesh Bhagavatula
@ 2020-07-02 14:46   ` Apeksha Gupta
  0 siblings, 0 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-02 14:46 UTC (permalink / raw)
  To: Pavan Nikhilesh Bhagavatula, jerin.jacob
  Cc: dev, thomas, Hemant Agrawal, Nipun Gupta, Akhil Goyal, stable



> -----Original Message-----
> From: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
> Sent: Thursday, July 2, 2020 8:54 AM
> To: Apeksha Gupta <apeksha.gupta@nxp.com>;
> jerin.jacob@caviumnetworks.com
> Cc: dev@dpdk.org; thomas@monjalon.net; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Nipun Gupta <nipun.gupta@nxp.com>; Akhil
> Goyal <akhil.goyal@nxp.com>; stable@dpdk.org
> Subject: [EXT] RE: [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing
> perf-queue packet flow
> 
> Caution: EXT Email
> 
> >Subject: [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-
> >queue packet flow
> >
> >The event ethernet Tx adapter provides data path for the ethernet
> >transmit
> >stage. Enqueue a burst of events objects supplied on an event device.
> >
> 
> NAK, please use pipeline_atq/queue to test Rx->Tx performance.
> Perf_atq/queue should only be used to test event device
> performance/latency such as
> <event_src(CPU/Rx/timer)> -> worker.
> 
[Apeksha] Okay, agree.

> >Fixes: 2369f73329 ("app/testeventdev: add perf queue worker
> >functions")
> >Cc: stable@dpdk.org
> >
> >Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
> >---
> > app/test-eventdev/test_perf_common.c | 11 ++++++++
> > app/test-eventdev/test_perf_common.h |  1 +
> > app/test-eventdev/test_perf_queue.c  | 42 ++++++++++++++++++++---
> >-----
> > 3 files changed, 43 insertions(+), 11 deletions(-)
> >
> >diff --git a/app/test-eventdev/test_perf_common.c b/app/test-
> >eventdev/test_perf_common.c
> >index b3af4bfeca..341e16eade 100644
> >--- a/app/test-eventdev/test_perf_common.c
> >+++ b/app/test-eventdev/test_perf_common.c
> >@@ -687,9 +687,20 @@ perf_ethdev_setup(struct evt_test *test,
> >struct evt_options *opt)
> >               return -ENODEV;
> >       }
> >
> >+      t->internal_port = 1;
> >       RTE_ETH_FOREACH_DEV(i) {
> >               struct rte_eth_dev_info dev_info;
> >               struct rte_eth_conf local_port_conf = port_conf;
> >+              uint32_t caps = 0;
> >+
> >+              ret = rte_event_eth_tx_adapter_caps_get(opt->dev_id,
> >i, &caps);
> >+              if (ret != 0) {
> >+                      evt_err("failed to get event tx adapter[%d]
> >caps", i);
> >+                      return ret;
> >+              }
> >+
> >+              if (!(caps &
> >RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT))
> >+                      t->internal_port = 0;
> >
> >               ret = rte_eth_dev_info_get(i, &dev_info);
> >               if (ret != 0) {
> >diff --git a/app/test-eventdev/test_perf_common.h b/app/test-
> >eventdev/test_perf_common.h
> >index d8fbee6d89..716199d8c9 100644
> >--- a/app/test-eventdev/test_perf_common.h
> >+++ b/app/test-eventdev/test_perf_common.h
> >@@ -48,6 +48,7 @@ struct test_perf {
> >       int done;
> >       uint64_t outstand_pkts;
> >       uint8_t nb_workers;
> >+      uint8_t internal_port;
> >       enum evt_test_result result;
> >       uint32_t nb_flows;
> >       uint64_t nb_pkts;
> >diff --git a/app/test-eventdev/test_perf_queue.c b/app/test-
> >eventdev/test_perf_queue.c
> >index 29098580e7..f79e4a4164 100644
> >--- a/app/test-eventdev/test_perf_queue.c
> >+++ b/app/test-eventdev/test_perf_queue.c
> >@@ -71,10 +71,12 @@ perf_queue_worker(void *arg, const int
> >enable_fwd_latency)
> > }
> >
> > static int
> >-perf_queue_worker_burst(void *arg, const int enable_fwd_latency)
> >+perf_queue_worker_burst(void *arg, const int enable_fwd_latency,
> >+                                      const uint32_t flags)
> > {
> >       PERF_WORKER_INIT;
> >       uint16_t i;
> >+      uint16_t nb_tx;
> >       /* +1 to avoid prefetch out of array check */
> >       struct rte_event ev[BURST_SIZE + 1];
> >
> >@@ -111,12 +113,20 @@ perf_queue_worker_burst(void *arg, const
> >int enable_fwd_latency)
> >                       }
> >               }
> >
> >-              uint16_t enq;
> >-
> >-              enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
> >-              while (enq < nb_rx) {
> >-                      enq += rte_event_enqueue_burst(dev, port,
> >+              if (flags == TEST_PERF_EVENT_TX_DIRECT) {
> >+                      nb_tx =
> >rte_event_eth_tx_adapter_enqueue(dev, port,
> >+                                                              ev,
> >nb_rx, 0);
> >+                      while (nb_tx < nb_rx && !t->done)
> >+                              nb_tx +=
> >rte_event_eth_tx_adapter_enqueue(dev,
> >+                                                      port, ev +
> >nb_tx,
> >+                                                      nb_rx - nb_tx,
> >0);
> >+              } else {
> >+                      uint16_t enq;
> >+                      enq = rte_event_enqueue_burst(dev, port, ev,
> >nb_rx);
> >+                      while (enq < nb_rx) {
> >+                              enq += rte_event_enqueue_burst(dev,
> >port,
> >                                                       ev + enq, nb_rx
> >- enq);
> >+                      }
> >               }
> >       }
> >       return 0;
> >@@ -130,16 +140,26 @@ worker_wrapper(void *arg)
> >
> >       const bool burst = evt_has_burst_mode(w->dev_id);
> >       const int fwd_latency = opt->fwd_latency;
> >-
> >+      const bool internal_port = w->t->internal_port;
> >+      uint32_t flags;
> >       /* allow compiler to optimize */
> >       if (!burst && !fwd_latency)
> >               return perf_queue_worker(arg, 0);
> >       else if (!burst && fwd_latency)
> >               return perf_queue_worker(arg, 1);
> >-      else if (burst && !fwd_latency)
> >-              return perf_queue_worker_burst(arg, 0);
> >-      else if (burst && fwd_latency)
> >-              return perf_queue_worker_burst(arg, 1);
> >+      else if (burst && !fwd_latency && internal_port) {
> >+              flags = TEST_PERF_EVENT_TX_DIRECT;
> >+              return perf_queue_worker_burst(arg, 0, flags);
> >+      } else if (burst && !fwd_latency && !internal_port) {
> >+              flags = TEST_PERF_EVENT_TX_ENQ;
> >+              return perf_queue_worker_burst(arg, 1, flags);
> >+      } else if (burst && fwd_latency && internal_port) {
> >+              flags = TEST_PERF_EVENT_TX_DIRECT;
> >+              return perf_queue_worker_burst(arg, 0, flags);
> >+      } else if (burst && fwd_latency && !internal_port) {
> >+              flags = TEST_PERF_EVENT_TX_ENQ;
> >+              return perf_queue_worker_burst(arg, 1, flags);
> >+      }
> >
> >       rte_panic("invalid worker\n");
> > }
> >--
> >2.17.1


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

* Re: [dpdk-dev] [EXT] RE: [PATCH 5/6] app/test-eventdev: Enhancing perf-atq packet flow
  2020-07-02  3:25   ` Pavan Nikhilesh Bhagavatula
@ 2020-07-02 14:46     ` Apeksha Gupta
  0 siblings, 0 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-02 14:46 UTC (permalink / raw)
  To: Pavan Nikhilesh Bhagavatula, jerin.jacob
  Cc: dev, thomas, Hemant Agrawal, Nipun Gupta, Akhil Goyal, stable



> -----Original Message-----
> From: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
> Sent: Thursday, July 2, 2020 8:55 AM
> To: Apeksha Gupta <apeksha.gupta@nxp.com>;
> jerin.jacob@caviumnetworks.com
> Cc: dev@dpdk.org; thomas@monjalon.net; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Nipun Gupta <nipun.gupta@nxp.com>; Akhil
> Goyal <akhil.goyal@nxp.com>; stable@dpdk.org
> Subject: [EXT] RE: [dpdk-dev] [PATCH 5/6] app/test-eventdev: Enhancing
> perf-atq packet flow
> 
> Caution: EXT Email
> 
> >Subject: [dpdk-dev] [PATCH 5/6] app/test-eventdev: Enhancing perf-atq
> >packet flow
> >
> >The event ethernet Tx adapter provides data path for the ethernet
> >transmit
> >stage. Enqueue a burst of events objects supplied on an event device.
> 
> NAK, same as 1/6 use pipeline_atq/queue to test Rx->Tx performace.
> 
[Apeksha] Okay.
> >
> >Fixes: 1eb10ad8db8 ("app/testeventdev: add perf all types queue
> >worker")
> >Cc: stable@dpdk.org
> >
> >Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
> >---
> > app/test-eventdev/test_perf_atq.c    | 43 ++++++++++++++++++++------
> >--
> > app/test-eventdev/test_perf_common.h |  4 +++
> > 2 files changed, 35 insertions(+), 12 deletions(-)
> >
> >diff --git a/app/test-eventdev/test_perf_atq.c b/app/test-
> >eventdev/test_perf_atq.c
> >index d0241ec4ae..23e9ad4a29 100644
> >--- a/app/test-eventdev/test_perf_atq.c
> >+++ b/app/test-eventdev/test_perf_atq.c
> >@@ -70,10 +70,12 @@ perf_atq_worker(void *arg, const int
> >enable_fwd_latency)
> > }
> >
> > static int
> >-perf_atq_worker_burst(void *arg, const int enable_fwd_latency)
> >+perf_atq_worker_burst(void *arg, const int enable_fwd_latency,
> >+                                      const uint32_t flags)
> > {
> >       PERF_WORKER_INIT;
> >       uint16_t i;
> >+      uint16_t nb_tx;
> >       /* +1 to avoid prefetch out of array check */
> >       struct rte_event ev[BURST_SIZE + 1];
> >
> >@@ -110,13 +112,21 @@ perf_atq_worker_burst(void *arg, const int
> >enable_fwd_latency)
> >                                               nb_stages);
> >                       }
> >               }
> >+              if (flags == TEST_PERF_EVENT_TX_DIRECT) {
> >+                      nb_tx =
> >rte_event_eth_tx_adapter_enqueue(dev, port,
> >+                                              ev, nb_rx, 0);
> >+                      while (nb_tx < nb_rx && !t->done)
> >+                              nb_tx +=
> >rte_event_eth_tx_adapter_enqueue(dev,
> >+                                              port, ev + nb_tx,
> >+                                              nb_rx - nb_tx, 0);
> >+              } else {
> >+                      uint16_t enq;
> >
> >-              uint16_t enq;
> >-
> >-              enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
> >-              while (enq < nb_rx) {
> >-                      enq += rte_event_enqueue_burst(dev, port,
> >+                      enq = rte_event_enqueue_burst(dev, port, ev,
> >nb_rx);
> >+                      while (enq < nb_rx) {
> >+                              enq += rte_event_enqueue_burst(dev,
> >port,
> >                                                       ev + enq, nb_rx
> >- enq);
> >+                      }
> >               }
> >       }
> >       return 0;
> >@@ -127,20 +137,29 @@ worker_wrapper(void *arg)
> > {
> >       struct worker_data *w  = arg;
> >       struct evt_options *opt = w->t->opt;
> >-
> >+      const bool internal_port = w->t->internal_port;
> >       const bool burst = evt_has_burst_mode(w->dev_id);
> >       const int fwd_latency = opt->fwd_latency;
> >+      uint32_t flags;
> >
> >       /* allow compiler to optimize */
> >       if (!burst && !fwd_latency)
> >               return perf_atq_worker(arg, 0);
> >       else if (!burst && fwd_latency)
> >               return perf_atq_worker(arg, 1);
> >-      else if (burst && !fwd_latency)
> >-              return perf_atq_worker_burst(arg, 0);
> >-      else if (burst && fwd_latency)
> >-              return perf_atq_worker_burst(arg, 1);
> >-
> >+      else if (burst && !fwd_latency && internal_port) {
> >+              flags = TEST_PERF_EVENT_TX_DIRECT;
> >+              return perf_atq_worker_burst(arg, 0, flags);
> >+      } else if (burst && !fwd_latency && !internal_port) {
> >+              flags = TEST_PERF_EVENT_TX_ENQ;
> >+              return perf_atq_worker_burst(arg, 1, flags);
> >+      } else if (burst && fwd_latency && internal_port) {
> >+              flags = TEST_PERF_EVENT_TX_DIRECT;
> >+              return perf_atq_worker_burst(arg, 0, flags);
> >+      } else if (burst && fwd_latency && !internal_port) {
> >+              flags = TEST_PERF_EVENT_TX_ENQ;
> >+              return perf_atq_worker_burst(arg, 1, flags);
> >+      }
> >       rte_panic("invalid worker\n");
> > }
> >
> >diff --git a/app/test-eventdev/test_perf_common.h b/app/test-
> >eventdev/test_perf_common.h
> >index 716199d8c9..c86be385ad 100644
> >--- a/app/test-eventdev/test_perf_common.h
> >+++ b/app/test-eventdev/test_perf_common.h
> >@@ -13,6 +13,7 @@
> > #include <rte_ethdev.h>
> > #include <rte_eventdev.h>
> > #include <rte_event_eth_rx_adapter.h>
> >+#include <rte_event_eth_tx_adapter.h>
> > #include <rte_event_timer_adapter.h>
> > #include <rte_lcore.h>
> > #include <rte_malloc.h>
> >@@ -23,6 +24,9 @@
> > #include "evt_options.h"
> > #include "evt_test.h"
> >
> >+#define TEST_PERF_EVENT_TX_ENQ                0x1
> >+#define TEST_PERF_EVENT_TX_DIRECT     0X2
> >+
> > struct test_perf;
> >
> > struct worker_data {
> >--
> >2.17.1


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

* Re: [dpdk-dev] [EXT] RE: [PATCH 6/6] app/test-eventdev: fix eventdev queues
  2020-07-02  3:27   ` Pavan Nikhilesh Bhagavatula
@ 2020-07-09 13:05     ` Apeksha Gupta
  0 siblings, 0 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-09 13:05 UTC (permalink / raw)
  To: Pavan Nikhilesh Bhagavatula, jerin.jacob
  Cc: dev, thomas, Hemant Agrawal, Nipun Gupta, Akhil Goyal, stable



> -----Original Message-----
> From: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
> Sent: Thursday, July 2, 2020 8:57 AM
> To: Apeksha Gupta <apeksha.gupta@nxp.com>;
> jerin.jacob@caviumnetworks.com
> Cc: dev@dpdk.org; thomas@monjalon.net; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Nipun Gupta <nipun.gupta@nxp.com>; Akhil
> Goyal <akhil.goyal@nxp.com>; stable@dpdk.org
> Subject: [EXT] RE: [dpdk-dev] [PATCH 6/6] app/test-eventdev: fix eventdev
> queues
> 
> Caution: EXT Email
> 
> >Subject: [dpdk-dev] [PATCH 6/6] app/test-eventdev: fix eventdev
> >queues
> >
> >In pipeline_queue test case, if event queues are greater than the
> >max event queues it will fail.
> 
> Nak, it should fail. If sufficient queues are not available how would the
> pipeline work?
> 
>         /*
>          * The pipelines are setup in the following manner:
>          *
>          * eth_dev_count = 2, nb_stages = 2.
>          *
>          *      queues = 6
>          *      stride = 3
>          *
>          *      event queue pipelines:
>          *      eth0 -> q0 -> q1 -> (q2->tx)
>          *      eth1 -> q3 -> q4 -> (q5->tx)
>          *
>          *      q2, q5 configured as ATOMIC | SINGLE_LINK
>          *
>          */
> 
[Apeksha] Okay.
 
> 
> >To handle this check is added.
> >
> >Fixes: 032a965a8f1 ("app/eventdev: support Tx adapter")
> >Cc: stable@dpdk.org
> >
> >Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
> >---
> > app/test-eventdev/test_pipeline_queue.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> >diff --git a/app/test-eventdev/test_pipeline_queue.c b/app/test-
> >eventdev/test_pipeline_queue.c
> >index bee4ac0344..b958953bf9 100644
> >--- a/app/test-eventdev/test_pipeline_queue.c
> >+++ b/app/test-eventdev/test_pipeline_queue.c
> >@@ -325,6 +325,9 @@ pipeline_queue_eventdev_setup(struct evt_test
> >*test, struct evt_options *opt)
> >       memset(queue_arr, 0, sizeof(uint8_t) *
> >RTE_EVENT_MAX_QUEUES_PER_DEV);
> >
> >       rte_event_dev_info_get(opt->dev_id, &info);
> >+      if (nb_queues > info.max_event_queues)
> >+              nb_queues = nb_stages;
> >+
> >       ret = evt_configure_eventdev(opt, nb_queues, nb_ports);
> >       if (ret) {
> >               evt_err("failed to configure eventdev %d", opt-
> >>dev_id);
> >--
> >2.17.1


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

* [dpdk-dev] [PATCH v2] app/test-eventdev: Fix pipeline atq
  2020-07-01  6:06 ` [dpdk-dev] [PATCH 4/6] app/test-eventdev: Fix pipeline atq Apeksha Gupta
@ 2020-07-10 13:08   ` Apeksha Gupta
  2020-07-13 11:44     ` [dpdk-dev] [PATCH v3 1/2] " Apeksha Gupta
  0 siblings, 1 reply; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-10 13:08 UTC (permalink / raw)
  To: jerin.jacob
  Cc: thomas, dev, hemant.agrawal, nipun.gupta, Apeksha Gupta, stable

if-check is required to check the capabilitiy of all type queue.

Fixes: 6bf570a9911 ("app/eventdev: add pipeline atq test")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
---
 app/test-eventdev/test_pipeline_atq.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/app/test-eventdev/test_pipeline_atq.c b/app/test-eventdev/test_pipeline_atq.c
index 8e8686c145..0872b25b53 100644
--- a/app/test-eventdev/test_pipeline_atq.c
+++ b/app/test-eventdev/test_pipeline_atq.c
@@ -495,6 +495,8 @@ pipeline_atq_capability_check(struct evt_options *opt)
 			evt_nr_active_lcores(opt->wlcores),
 			dev_info.max_event_ports);
 	}
+	if (!evt_has_all_types_queue(opt->dev_id))
+		return false;
 
 	return true;
 }
-- 
2.17.1


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

* [dpdk-dev] [PATCH v3 1/2] app/test-eventdev: Fix pipeline atq
  2020-07-10 13:08   ` [dpdk-dev] [PATCH v2] " Apeksha Gupta
@ 2020-07-13 11:44     ` Apeksha Gupta
  2020-07-13 11:44       ` [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag Apeksha Gupta
                         ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-13 11:44 UTC (permalink / raw)
  To: jerin.jacob
  Cc: thomas, dev, hemant.agrawal, nipun.gupta, Apeksha Gupta, stable

if-check is required to check the capability of all type queue.

Fixes: 6bf570a9911 ("app/eventdev: add pipeline atq test")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
---
v3:
* Added patch
1. event/dpaa2: Add all type queue capability flag

v2:
* Removed unrequired patches
1. app/test-eventdev: Enhancing perf-queue packet flow
2. app/test-eventdev: Removed unwanted checks
3. event/dpaa2: Add all type queue capability flag
4. app/test-eventdev: Enhancing perf-atq packet flow
5. app/test-eventdev: fix eventdev queues
---
 app/test-eventdev/test_pipeline_atq.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/app/test-eventdev/test_pipeline_atq.c b/app/test-eventdev/test_pipeline_atq.c
index 8e8686c145..0872b25b53 100644
--- a/app/test-eventdev/test_pipeline_atq.c
+++ b/app/test-eventdev/test_pipeline_atq.c
@@ -495,6 +495,8 @@ pipeline_atq_capability_check(struct evt_options *opt)
 			evt_nr_active_lcores(opt->wlcores),
 			dev_info.max_event_ports);
 	}
+	if (!evt_has_all_types_queue(opt->dev_id))
+		return false;
 
 	return true;
 }
-- 
2.17.1


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

* [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag
  2020-07-13 11:44     ` [dpdk-dev] [PATCH v3 1/2] " Apeksha Gupta
@ 2020-07-13 11:44       ` Apeksha Gupta
  2020-07-21 17:51         ` Jerin Jacob
                           ` (2 more replies)
  2020-07-22  1:13       ` [dpdk-dev] [PATCH v3 1/2] app/test-eventdev: Fix pipeline atq Pavan Nikhilesh Bhagavatula
  2020-07-23 17:02       ` [dpdk-dev] [PATCH v4 1/2] app/test-eventdev: fix capability check in pipeline ATQ test Apeksha Gupta
  2 siblings, 3 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-13 11:44 UTC (permalink / raw)
  To: jerin.jacob
  Cc: thomas, dev, hemant.agrawal, nipun.gupta, Apeksha Gupta, stable

Event device capability flag added in event driver,
Event device is capable of enqueuing events of any type to any queue.

Fixes: 8f4a294c23 ("event/dpaa2: apply new capability flags")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
---
v3:
* Added patch
1. event/dpaa2: Add all type queue capability flag

v2:
* Removed unrequired patches
1. app/test-eventdev: Enhancing perf-queue packet flow
2. app/test-eventdev: Removed unwanted checks
3. event/dpaa2: Add all type queue capability flag
4. app/test-eventdev: Enhancing perf-atq packet flow
5. app/test-eventdev: fix eventdev queues
---
 drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
index 0072db153b..14dcc50d4a 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.c
+++ b/drivers/event/dpaa2/dpaa2_eventdev.c
@@ -407,7 +407,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev,
 		RTE_EVENT_DEV_CAP_BURST_MODE|
 		RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK |
 		RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT |
-		RTE_EVENT_DEV_CAP_NONSEQ_MODE;
+		RTE_EVENT_DEV_CAP_NONSEQ_MODE |
+		RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES;
 
 }
 
-- 
2.17.1


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

* Re: [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag
  2020-07-13 11:44       ` [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag Apeksha Gupta
@ 2020-07-21 17:51         ` Jerin Jacob
  2020-07-23 13:36         ` Nipun Gupta
  2020-07-23 17:04         ` [dpdk-dev] [PATCH v4 2/2] event/dpaa2: add " Apeksha Gupta
  2 siblings, 0 replies; 22+ messages in thread
From: Jerin Jacob @ 2020-07-21 17:51 UTC (permalink / raw)
  To: Apeksha Gupta
  Cc: Jerin Jacob, Thomas Monjalon, dpdk-dev, Hemant Agrawal,
	Nipun Gupta, dpdk stable

On Mon, Jul 13, 2020 at 5:14 PM Apeksha Gupta <apeksha.gupta@nxp.com> wrote:
>
> Event device capability flag added in event driver,
> Event device is capable of enqueuing events of any type to any queue.

Please change the subject to "event/dpaa2: add all type queue capability flag"

Update git commit comment to below or something similar.

dppa2 eventdev device is capable of all type queue feature.
Fix the capability flag to reflect the same.

>
> Fixes: 8f4a294c23 ("event/dpaa2: apply new capability flags")
> Cc: stable@dpdk.org

@Nipun Gupta  @Hemant Agrawal

Please ack the patch.

>
> Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
> ---
> v3:
> * Added patch
> 1. event/dpaa2: Add all type queue capability flag
>
> v2:
> * Removed unrequired patches
> 1. app/test-eventdev: Enhancing perf-queue packet flow
> 2. app/test-eventdev: Removed unwanted checks
> 3. event/dpaa2: Add all type queue capability flag
> 4. app/test-eventdev: Enhancing perf-atq packet flow
> 5. app/test-eventdev: fix eventdev queues
> ---
>  drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
> index 0072db153b..14dcc50d4a 100644
> --- a/drivers/event/dpaa2/dpaa2_eventdev.c
> +++ b/drivers/event/dpaa2/dpaa2_eventdev.c
> @@ -407,7 +407,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev,
>                 RTE_EVENT_DEV_CAP_BURST_MODE|
>                 RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK |
>                 RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT |
> -               RTE_EVENT_DEV_CAP_NONSEQ_MODE;
> +               RTE_EVENT_DEV_CAP_NONSEQ_MODE |
> +               RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES;
>
>  }
>
> --
> 2.17.1
>

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

* Re: [dpdk-dev] [PATCH v3 1/2] app/test-eventdev: Fix pipeline atq
  2020-07-13 11:44     ` [dpdk-dev] [PATCH v3 1/2] " Apeksha Gupta
  2020-07-13 11:44       ` [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag Apeksha Gupta
@ 2020-07-22  1:13       ` Pavan Nikhilesh Bhagavatula
  2020-07-22  7:48         ` Thomas Monjalon
  2020-07-23 17:02       ` [dpdk-dev] [PATCH v4 1/2] app/test-eventdev: fix capability check in pipeline ATQ test Apeksha Gupta
  2 siblings, 1 reply; 22+ messages in thread
From: Pavan Nikhilesh Bhagavatula @ 2020-07-22  1:13 UTC (permalink / raw)
  To: Apeksha Gupta, jerin.jacob
  Cc: thomas, dev, hemant.agrawal, nipun.gupta, stable


>Subject: [dpdk-dev] [PATCH v3 1/2] app/test-eventdev: Fix pipeline atq

./devtools/check-git-log.sh
Wrong headline uppercase:
        app/test-eventdev: Fix pipeline atq

Having a more informative commit title and message would be helpful,
Something like:

" app/eventdev: fix capability check in pipeline atq test"

>
>if-check is required to check the capability of all type queue.


    "Add all type queue capability check before configuring event device
    for pipeline atq test."

>
>Fixes: 6bf570a9911 ("app/eventdev: add pipeline atq test")
>Cc: stable@dpdk.org
>
>Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>

With above changes

Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>

>---
>v3:
>* Added patch
>1. event/dpaa2: Add all type queue capability flag
>
>v2:
>* Removed unrequired patches
>1. app/test-eventdev: Enhancing perf-queue packet flow
>2. app/test-eventdev: Removed unwanted checks
>3. event/dpaa2: Add all type queue capability flag
>4. app/test-eventdev: Enhancing perf-atq packet flow
>5. app/test-eventdev: fix eventdev queues
>---
> app/test-eventdev/test_pipeline_atq.c | 2 ++
> 1 file changed, 2 insertions(+)
>
>diff --git a/app/test-eventdev/test_pipeline_atq.c b/app/test-
>eventdev/test_pipeline_atq.c
>index 8e8686c145..0872b25b53 100644
>--- a/app/test-eventdev/test_pipeline_atq.c
>+++ b/app/test-eventdev/test_pipeline_atq.c
>@@ -495,6 +495,8 @@ pipeline_atq_capability_check(struct
>evt_options *opt)
> 			evt_nr_active_lcores(opt->wlcores),
> 			dev_info.max_event_ports);
> 	}
>+	if (!evt_has_all_types_queue(opt->dev_id))
>+		return false;
>
> 	return true;
> }
>--
>2.17.1


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

* Re: [dpdk-dev] [PATCH v3 1/2] app/test-eventdev: Fix pipeline atq
  2020-07-22  1:13       ` [dpdk-dev] [PATCH v3 1/2] app/test-eventdev: Fix pipeline atq Pavan Nikhilesh Bhagavatula
@ 2020-07-22  7:48         ` Thomas Monjalon
  0 siblings, 0 replies; 22+ messages in thread
From: Thomas Monjalon @ 2020-07-22  7:48 UTC (permalink / raw)
  To: Apeksha Gupta, jerin.jacob, Pavan Nikhilesh Bhagavatula
  Cc: dev, hemant.agrawal, nipun.gupta, stable

22/07/2020 03:13, Pavan Nikhilesh Bhagavatula:
> 
> >Subject: [dpdk-dev] [PATCH v3 1/2] app/test-eventdev: Fix pipeline atq
> 
> ./devtools/check-git-log.sh
> Wrong headline uppercase:
>         app/test-eventdev: Fix pipeline atq
> 
> Having a more informative commit title and message would be helpful,
> Something like:
> 
> " app/eventdev: fix capability check in pipeline atq test"

What means "atq"?
If it is an acronym, it should be uppercased.




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

* Re: [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag
  2020-07-13 11:44       ` [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag Apeksha Gupta
  2020-07-21 17:51         ` Jerin Jacob
@ 2020-07-23 13:36         ` Nipun Gupta
  2020-07-24  5:24           ` Jerin Jacob
  2020-07-23 17:04         ` [dpdk-dev] [PATCH v4 2/2] event/dpaa2: add " Apeksha Gupta
  2 siblings, 1 reply; 22+ messages in thread
From: Nipun Gupta @ 2020-07-23 13:36 UTC (permalink / raw)
  To: Apeksha Gupta, jerin.jacob
  Cc: thomas, dev, Hemant Agrawal, Apeksha Gupta, stable

Acked-by: Nipun Gupta <nipun.gupta@nxp.com>

> -----Original Message-----
> From: Apeksha Gupta <apeksha.gupta@nxp.com>
> Sent: Monday, July 13, 2020 5:14 PM
> To: jerin.jacob@caviumnetworks.com
> Cc: thomas@monjalon.net; dev@dpdk.org; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Nipun Gupta <nipun.gupta@nxp.com>; Apeksha
> Gupta <apeksha.gupta@nxp.com>; stable@dpdk.org
> Subject: [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag
> 
> Event device capability flag added in event driver,
> Event device is capable of enqueuing events of any type to any queue.
> 
> Fixes: 8f4a294c23 ("event/dpaa2: apply new capability flags")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
> ---
> v3:
> * Added patch
> 1. event/dpaa2: Add all type queue capability flag
> 
> v2:
> * Removed unrequired patches
> 1. app/test-eventdev: Enhancing perf-queue packet flow
> 2. app/test-eventdev: Removed unwanted checks
> 3. event/dpaa2: Add all type queue capability flag
> 4. app/test-eventdev: Enhancing perf-atq packet flow
> 5. app/test-eventdev: fix eventdev queues
> ---
>  drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c
> b/drivers/event/dpaa2/dpaa2_eventdev.c
> index 0072db153b..14dcc50d4a 100644
> --- a/drivers/event/dpaa2/dpaa2_eventdev.c
> +++ b/drivers/event/dpaa2/dpaa2_eventdev.c
> @@ -407,7 +407,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev,
>  		RTE_EVENT_DEV_CAP_BURST_MODE|
>  		RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK |
>  		RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT |
> -		RTE_EVENT_DEV_CAP_NONSEQ_MODE;
> +		RTE_EVENT_DEV_CAP_NONSEQ_MODE |
> +		RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES;
> 
>  }
> 
> --
> 2.17.1


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

* [dpdk-dev] [PATCH v4 1/2] app/test-eventdev: fix capability check in pipeline ATQ test
  2020-07-13 11:44     ` [dpdk-dev] [PATCH v3 1/2] " Apeksha Gupta
  2020-07-13 11:44       ` [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag Apeksha Gupta
  2020-07-22  1:13       ` [dpdk-dev] [PATCH v3 1/2] app/test-eventdev: Fix pipeline atq Pavan Nikhilesh Bhagavatula
@ 2020-07-23 17:02       ` Apeksha Gupta
  2 siblings, 0 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-23 17:02 UTC (permalink / raw)
  To: jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, Apeksha Gupta, stable

Add all type queue capability check before configuring event device
for pipeline atq test.

Fixes: 6bf570a9911 ("app/eventdev: add pipeline atq test")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
v4:
- removed checkpatch warning
- updated commit title and message

v3:
* Added patch
- event/dpaa2: Add all type queue capability flag

v2:
* Removed unrequired patches
- app/test-eventdev: Enhancing perf-queue packet flow
- app/test-eventdev: Removed unwanted checks
- event/dpaa2: Add all type queue capability flag
- app/test-eventdev: Enhancing perf-atq packet flow
- app/test-eventdev: fix eventdev queues
---
 app/test-eventdev/test_pipeline_atq.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/app/test-eventdev/test_pipeline_atq.c b/app/test-eventdev/test_pipeline_atq.c
index 8e8686c145..0872b25b53 100644
--- a/app/test-eventdev/test_pipeline_atq.c
+++ b/app/test-eventdev/test_pipeline_atq.c
@@ -495,6 +495,8 @@ pipeline_atq_capability_check(struct evt_options *opt)
 			evt_nr_active_lcores(opt->wlcores),
 			dev_info.max_event_ports);
 	}
+	if (!evt_has_all_types_queue(opt->dev_id))
+		return false;
 
 	return true;
 }
-- 
2.17.1


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

* [dpdk-dev] [PATCH v4 2/2] event/dpaa2: add all type queue capability flag
  2020-07-13 11:44       ` [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag Apeksha Gupta
  2020-07-21 17:51         ` Jerin Jacob
  2020-07-23 13:36         ` Nipun Gupta
@ 2020-07-23 17:04         ` Apeksha Gupta
  2 siblings, 0 replies; 22+ messages in thread
From: Apeksha Gupta @ 2020-07-23 17:04 UTC (permalink / raw)
  To: jerin.jacob
  Cc: dev, thomas, hemant.agrawal, nipun.gupta, Apeksha Gupta, stable

DPAA2 eventdev device is capable of all type queue feature.
Fix the capability flag to reflect the same.

Fixes: 8f4a294c23 ("event/dpaa2: apply new capability flags")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
---
v4:
- removed checkpatch warning
- updated commit title and message

v3:
* Added patch
- event/dpaa2: Add all type queue capability flag

v2:
* Removed unrequired patches
- app/test-eventdev: Enhancing perf-queue packet flow
- app/test-eventdev: Removed unwanted checks
- event/dpaa2: Add all type queue capability flag
- app/test-eventdev: Enhancing perf-atq packet flow
- app/test-eventdev: fix eventdev queues
---
 drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
index 0072db153b..14dcc50d4a 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.c
+++ b/drivers/event/dpaa2/dpaa2_eventdev.c
@@ -407,7 +407,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev,
 		RTE_EVENT_DEV_CAP_BURST_MODE|
 		RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK |
 		RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT |
-		RTE_EVENT_DEV_CAP_NONSEQ_MODE;
+		RTE_EVENT_DEV_CAP_NONSEQ_MODE |
+		RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES;
 
 }
 
-- 
2.17.1


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

* Re: [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag
  2020-07-23 13:36         ` Nipun Gupta
@ 2020-07-24  5:24           ` Jerin Jacob
  0 siblings, 0 replies; 22+ messages in thread
From: Jerin Jacob @ 2020-07-24  5:24 UTC (permalink / raw)
  To: Nipun Gupta
  Cc: Apeksha Gupta, jerin.jacob, thomas, dev, Hemant Agrawal, stable

On Thu, Jul 23, 2020 at 7:06 PM Nipun Gupta <nipun.gupta@nxp.com> wrote:
>
> Acked-by: Nipun Gupta <nipun.gupta@nxp.com>
>
> > -----Original Message-----
> > From: Apeksha Gupta <apeksha.gupta@nxp.com>
> > Sent: Monday, July 13, 2020 5:14 PM
> > To: jerin.jacob@caviumnetworks.com
> > Cc: thomas@monjalon.net; dev@dpdk.org; Hemant Agrawal
> > <hemant.agrawal@nxp.com>; Nipun Gupta <nipun.gupta@nxp.com>; Apeksha
> > Gupta <apeksha.gupta@nxp.com>; stable@dpdk.org
> > Subject: [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag
> >
> > Event device capability flag added in event driver,
> > Event device is capable of enqueuing events of any type to any queue.
> >
> > Fixes: 8f4a294c23 ("event/dpaa2: apply new capability flags")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>


Series applied to dpdk-next-eventdev/master. Thanks.


> > ---
> > v3:
> > * Added patch
> > 1. event/dpaa2: Add all type queue capability flag
> >
> > v2:
> > * Removed unrequired patches
> > 1. app/test-eventdev: Enhancing perf-queue packet flow
> > 2. app/test-eventdev: Removed unwanted checks
> > 3. event/dpaa2: Add all type queue capability flag
> > 4. app/test-eventdev: Enhancing perf-atq packet flow
> > 5. app/test-eventdev: fix eventdev queues
> > ---
> >  drivers/event/dpaa2/dpaa2_eventdev.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c
> > b/drivers/event/dpaa2/dpaa2_eventdev.c
> > index 0072db153b..14dcc50d4a 100644
> > --- a/drivers/event/dpaa2/dpaa2_eventdev.c
> > +++ b/drivers/event/dpaa2/dpaa2_eventdev.c
> > @@ -407,7 +407,8 @@ dpaa2_eventdev_info_get(struct rte_eventdev *dev,
> >               RTE_EVENT_DEV_CAP_BURST_MODE|
> >               RTE_EVENT_DEV_CAP_RUNTIME_PORT_LINK |
> >               RTE_EVENT_DEV_CAP_MULTIPLE_QUEUE_PORT |
> > -             RTE_EVENT_DEV_CAP_NONSEQ_MODE;
> > +             RTE_EVENT_DEV_CAP_NONSEQ_MODE |
> > +             RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES;
> >
> >  }
> >
> > --
> > 2.17.1
>

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

end of thread, other threads:[~2020-07-24  5:24 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-01  6:06 [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Apeksha Gupta
2020-07-01  6:06 ` [dpdk-dev] [PATCH 2/6] app/test-eventdev: Removed unwanted checks Apeksha Gupta
2020-07-01  6:06 ` [dpdk-dev] [PATCH 3/6] event/dpaa2: Add all type queue capability flag Apeksha Gupta
2020-07-01  6:06 ` [dpdk-dev] [PATCH 4/6] app/test-eventdev: Fix pipeline atq Apeksha Gupta
2020-07-10 13:08   ` [dpdk-dev] [PATCH v2] " Apeksha Gupta
2020-07-13 11:44     ` [dpdk-dev] [PATCH v3 1/2] " Apeksha Gupta
2020-07-13 11:44       ` [dpdk-dev] [PATCH v3 2/2] event/dpaa2: Add all type queue capability flag Apeksha Gupta
2020-07-21 17:51         ` Jerin Jacob
2020-07-23 13:36         ` Nipun Gupta
2020-07-24  5:24           ` Jerin Jacob
2020-07-23 17:04         ` [dpdk-dev] [PATCH v4 2/2] event/dpaa2: add " Apeksha Gupta
2020-07-22  1:13       ` [dpdk-dev] [PATCH v3 1/2] app/test-eventdev: Fix pipeline atq Pavan Nikhilesh Bhagavatula
2020-07-22  7:48         ` Thomas Monjalon
2020-07-23 17:02       ` [dpdk-dev] [PATCH v4 1/2] app/test-eventdev: fix capability check in pipeline ATQ test Apeksha Gupta
2020-07-01  6:06 ` [dpdk-dev] [PATCH 5/6] app/test-eventdev: Enhancing perf-atq packet flow Apeksha Gupta
2020-07-02  3:25   ` Pavan Nikhilesh Bhagavatula
2020-07-02 14:46     ` [dpdk-dev] [EXT] " Apeksha Gupta
2020-07-01  6:06 ` [dpdk-dev] [PATCH 6/6] app/test-eventdev: fix eventdev queues Apeksha Gupta
2020-07-02  3:27   ` Pavan Nikhilesh Bhagavatula
2020-07-09 13:05     ` [dpdk-dev] [EXT] " Apeksha Gupta
2020-07-02  3:24 ` [dpdk-dev] [PATCH 1/6] app/test-eventdev: Enhancing perf-queue packet flow Pavan Nikhilesh Bhagavatula
2020-07-02 14:46   ` [dpdk-dev] [EXT] " Apeksha Gupta

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