From: Jerin Jacob Date: Fri, 3 Mar 2017 17:28:18 +0000 (+0530) Subject: test/eventdev: add octeontx queue and flow based max stage X-Git-Tag: spdx-start~3800 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=9a1cdd54cdefe9f1463b6816b79a4069074d268f;p=dpdk.git test/eventdev: add octeontx queue and flow based max stage Add queue and flow based pipeline test with maximum number of stages available in the device. Signed-off-by: Jerin Jacob Acked-by: Harry van Haaren --- diff --git a/test/test/test_eventdev_octeontx.c b/test/test/test_eventdev_octeontx.c index 03590dacff..b1d1b396a7 100644 --- a/test/test/test_eventdev_octeontx.c +++ b/test/test/test_eventdev_octeontx.c @@ -1203,6 +1203,45 @@ test_multi_port_queue_max_stages_random_sched_type(void) return launch_multi_port_max_stages_random_sched_type( worker_queue_based_pipeline_max_stages_rand_sched_type); } + +static int +worker_mixed_pipeline_max_stages_rand_sched_type(void *arg) +{ + struct test_core_param *param = arg; + struct rte_event ev; + uint16_t valid_event; + uint8_t port = param->port; + uint8_t nr_queues = rte_event_queue_count(evdev); + rte_atomic32_t *total_events = param->total_events; + + while (rte_atomic32_read(total_events) > 0) { + valid_event = rte_event_dequeue_burst(evdev, port, &ev, 1, 0); + if (!valid_event) + continue; + + if (ev.queue_id == nr_queues - 1) { /* Last stage */ + rte_pktmbuf_free(ev.mbuf); + rte_atomic32_sub(total_events, 1); + } else { + ev.event_type = RTE_EVENT_TYPE_CPU; + ev.queue_id++; + ev.sub_event_type = rte_rand() % 256; + ev.sched_type = + rte_rand() % (RTE_SCHED_TYPE_PARALLEL + 1); + ev.op = RTE_EVENT_OP_FORWARD; + rte_event_enqueue_burst(evdev, port, &ev, 1); + } + } + return 0; +} + +/* Queue and flow based pipeline with maximum stages with random sched type */ +static int +test_multi_port_mixed_max_stages_random_sched_type(void) +{ + return launch_multi_port_max_stages_random_sched_type( + worker_mixed_pipeline_max_stages_rand_sched_type); +} static struct unit_test_suite eventdev_octeontx_testsuite = { .suite_name = "eventdev octeontx unit test suite", .setup = testsuite_setup, @@ -1264,6 +1303,8 @@ static struct unit_test_suite eventdev_octeontx_testsuite = { test_multi_port_flow_max_stages_random_sched_type), TEST_CASE_ST(eventdev_setup, eventdev_teardown, test_multi_port_queue_max_stages_random_sched_type), + TEST_CASE_ST(eventdev_setup, eventdev_teardown, + test_multi_port_mixed_max_stages_random_sched_type), TEST_CASES_END() /**< NULL terminate unit test array */ } };