[dpdk-dev] [PATCH v3 00/34] introduce generic eventdev test application framework

Jerin Jacob jerin.jacob at caviumnetworks.com
Tue Jul 4 06:52:55 CEST 2017


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.

v3:

1) Cleaned up the license header in app/test-eventdev/parser.c
The following two proprietary headers were removed as inet_pton4(),
inet_pton4(), my_ether_aton() has not been used.

+/*
+ * For my_ether_aton() function:
+ *
+ * Copyright (c) 2009, Olivier MATZ <zer0 at droids-corp.org>

+/*
+ * For inet_pton4() and inet_pton6() functions:
+ *
+ * Copyright (c) 1996 by Internet Software Consortium.

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                         |  388 +++
 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, 13435 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



More information about the dev mailing list