From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: [PATCH v2 00/34] introduce generic eventdev test application framework Date: Tue, 4 Jul 2017 00:43:28 +0530 Message-ID: <20170703191402.3638-1-jerin.jacob@caviumnetworks.com> References: <20170528195854.6064-1-jerin.jacob@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain Cc: harry.van.haaren@intel.com, bruce.richardson@intel.com, hemant.agrawal@nxp.com, gage.eads@intel.com, nipun.gupta@nxp.com, narender.vangati@intel.com, nikhil.rao@intel.com, gprathyusha@caviumnetworks.com, Jerin Jacob To: dev@dpdk.org Return-path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0047.outbound.protection.outlook.com [104.47.41.47]) by dpdk.org (Postfix) with ESMTP id A198E2C8 for ; Mon, 3 Jul 2017 21:14:39 +0200 (CEST) In-Reply-To: <20170528195854.6064-1-jerin.jacob@caviumnetworks.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The dpdk-test-eventdev tool is a Data Plane Development Kit (DPDK) application that allows exercising various eventdev use cases. This application has a generic framework to add new eventdev based test cases to verify functionality and measure the performance parameters of DPDK eventdev devices. This patch set adds the infrastructure for the generic eventdev test cases framework with four test cases. 1)perf_queue: test to measure the throughput and forward latency of eventdev pipeline on different PMDs 2)perf_atq: functionally same as perf_queue. But using "all type queues" eventdev infrastructure 3)order_queue: test to verify the ingress event ordering and atomic schedule type 4)order_atq: functionally same as order_queue. But using "all types queues" eventdev infrastructure. The tests are verified using both HW(OCTEONTX) and SW eventdev PMDs. We need minor changes in the API specification to run this test cases on HW PMD. I will send those patches separately. Since "all type queues" is not currently supported in SW implementation. "All types queue" based tests returns "unsupported" on SW PMD. Added detailed documentation for test operation and usage with diagrams in the last five patches in the series. v2: 1) Fix s/capablity/capability/g (Gage) 2) Fix the default testcase(Changed to "order_queue")(Harry) 3) Changed default .enqueue_depth = 8 to .enqueue_depth = 32(Harry) 4) Fix s/remining/remaining/g(Harry) 5) Change the default value of nb_pkts to 64M(Harry) 6) s/downsteam/downstream/(John) 7) Fix incorrect reference to --nb_packets in testeventdev.rst(Harry) 8) Fix line wrap in example application commands(John) 9) Enhance the write up on the nb_ports computation logic in testeventdev.rst(Gage) 10) Fix invalid reference to "(Valid ..)" comment(was pointing to --stlist)(Harry) 11) Used RTE_EVENT_DEV_CAP_BURST_MODE to detect the burst mode capability and fixed the reference to /* FIXME: probe through device capability */(Jerin) 12) Fix duplicate entries in lcore list(Prathyusha) 13) Removed --plcore and reused --plcores option(Harry) 14) Added support for --nb_pkts = 0(0 implies no limit)(Jerin) 15) Added Harry's Series Ack 16) Updated the release notes(Jerin) /Jerin This patch-set has following two checkpatch false positive errors: ------------------------------------------------------------------------------- ### app/testeventdev: update options through the command line WARNING:EMBEDDED_FUNCTION_NAME: Prefer using '"%s...", __func__' to using 'usage', this function's name, in a string #139: FILE: app/test-eventdev/evt_options.c:179: + printf("usage : %s [EAL options] -- [application options]\n", program); WARNING:LONG_LINE: line over 80 characters #185: FILE: app/test-eventdev/test_perf_common.c:207: + printf(CLGRN"\r%.3f mpps avg %.3f mpps [avg fwd latency %.3f us] "CLNRM, ------------------------------------------------------------------------------- Guduri Prathyusha (3): app/testeventdev: add string parsing helpers app/testeventdev: update options through the command line doc: describe the new eventdev test application Jerin Jacob (31): app/testeventdev: introduce dpdk-test-eventdev application app/testeventdev: define eventdev test ops app/testeventdev: add eventdev test registration framework app/testeventdev: add common helper functions app/testeventdev: define the test options app/testeventdev: add helper functions to check options app/testeventdev: add helper functions to dump options app/testeventdev: invoke the test ops app/testeventdev: add the signal handler app/testeventdev: order: add test setup and destroy app/testeventdev: order: add basic functions app/testeventdev: order: add eventdev port setup app/testeventdev: order: launch lcores app/testeventdev: add order queue test app/testeventdev: order queue: add worker functions app/testeventdev: add order "all types queue" test app/testeventdev: perf: add test setup and destroy app/testeventdev: perf: add basic functions app/testeventdev: perf: add opt dump and check functions app/testeventdev: perf: add eventdev port setup app/testeventdev: perf: launch lcores app/testeventdev: add perf queue test app/testeventdev: perf queue: add worker functions app/testeventdev: add perf "all types queue" test app/testeventdev: perf: add "all type queue" worker function doc/testeventdev: add "order queue" test details doc/testeventdev: add "order all types queue" test details doc/testeventdev: add "perf queue" test details doc/testeventdev: add "perf all types queue" test details maintainers: claim responsibility for the eventdev test app doc: update release notes for dpdk-test-eventdev application MAINTAINERS | 6 + app/Makefile | 4 + app/test-eventdev/Makefile | 54 + app/test-eventdev/evt_common.h | 116 + app/test-eventdev/evt_main.c | 227 ++ app/test-eventdev/evt_options.c | 341 +++ app/test-eventdev/evt_options.h | 277 ++ app/test-eventdev/evt_test.c | 70 + app/test-eventdev/evt_test.h | 125 + app/test-eventdev/parser.c | 435 +++ app/test-eventdev/parser.h | 79 + app/test-eventdev/test_order_atq.c | 232 ++ app/test-eventdev/test_order_common.c | 380 +++ app/test-eventdev/test_order_common.h | 153 + app/test-eventdev/test_order_queue.c | 242 ++ app/test-eventdev/test_perf_atq.c | 277 ++ app/test-eventdev/test_perf_common.c | 497 +++ app/test-eventdev/test_perf_common.h | 169 ++ app/test-eventdev/test_perf_queue.c | 288 ++ config/common_base | 5 + doc/guides/rel_notes/release_17_08.rst | 7 + doc/guides/tools/img/eventdev_order_atq_test.svg | 1576 ++++++++++ doc/guides/tools/img/eventdev_order_queue_test.svg | 1673 ++++++++++ doc/guides/tools/img/eventdev_perf_atq_test.svg | 3188 ++++++++++++++++++++ doc/guides/tools/img/eventdev_perf_queue_test.svg | 2599 ++++++++++++++++ doc/guides/tools/index.rst | 2 +- doc/guides/tools/testeventdev.rst | 461 +++ 27 files changed, 13482 insertions(+), 1 deletion(-) create mode 100644 app/test-eventdev/Makefile create mode 100644 app/test-eventdev/evt_common.h create mode 100644 app/test-eventdev/evt_main.c create mode 100644 app/test-eventdev/evt_options.c create mode 100644 app/test-eventdev/evt_options.h create mode 100644 app/test-eventdev/evt_test.c create mode 100644 app/test-eventdev/evt_test.h create mode 100644 app/test-eventdev/parser.c create mode 100644 app/test-eventdev/parser.h create mode 100644 app/test-eventdev/test_order_atq.c create mode 100644 app/test-eventdev/test_order_common.c create mode 100644 app/test-eventdev/test_order_common.h create mode 100644 app/test-eventdev/test_order_queue.c create mode 100644 app/test-eventdev/test_perf_atq.c create mode 100644 app/test-eventdev/test_perf_common.c create mode 100644 app/test-eventdev/test_perf_common.h create mode 100644 app/test-eventdev/test_perf_queue.c create mode 100644 doc/guides/tools/img/eventdev_order_atq_test.svg create mode 100644 doc/guides/tools/img/eventdev_order_queue_test.svg create mode 100644 doc/guides/tools/img/eventdev_perf_atq_test.svg create mode 100644 doc/guides/tools/img/eventdev_perf_queue_test.svg create mode 100644 doc/guides/tools/testeventdev.rst -- 2.13.2