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