[dpdk-dev] [RFC PATCH 0/7] RFC: EventDev Software PMD

Harry van Haaren harry.van.haaren at intel.com
Wed Nov 16 19:00:00 CET 2016


This series of RFC patches implements the libeventdev API and a software
eventdev PMD.

The implementation here is intended to enable the community to use the
eventdev API, specifically to test if the API serves the purpose that it is
designed to. It should be noted this is an RFC implementation, and hence
there should be no performance expectations.

An RFC for the eventdev was sent in August[1] by Jerin Jacob of Cavium,
which introduced the core concepts of the eventdev to the community. Since
then there has been extensive discussion[2] on the mailing list, which had
led to various modifications to the initial proposed API.

The API as presented in the first patch contains a number of changes that
have not yet been discussed. These changes were noticed during the
implementation of the software eventdev PMD, and were added to the API to
enable completion of the PMD. These modifications include a statistics API
and a dump API. For more details, please refer to the commit message of the
patch itself.

The functionality provided by each of the patches is as follows:
  1: Add eventdev API and library infrastructure
  2: Enable compilation of library
  3: Add software eventdev PMD
  4: Enable compilation of PMD
  5: Add test code
  6: Enable test code compilation
  7: Sample application demonstrating basic usage

This breakdown of the patchset hopefully enables the community to experiment
with the eventdev API, and allows us all to gain first-hand experience in
using the eventdev API.  Note also that this patchset has not passed
checkpatch testing just yet - will fix for v2 :)

As next steps I see value in discussing the proposed changes included in
this version of the header file, while welcoming feedback from the community
on the API in general too.

Signed-off-by: Harry van Haaren <harry.van.haaren at intel.com>

[1] http://dpdk.org/ml/archives/dev/2016-August/045181.html
[2] http://dpdk.org/ml/archives/dev/2016-October/thread.html#48196

Harry van Haaren (7):
  eventdev: header and implementation
  eventdev: makefiles
  event/sw: software eventdev implementation
  event/sw: makefiles and config
  test/eventdev: unit and functional tests
  test/eventdev: unit func makefiles
  examples/eventdev_pipeline: adding example

 app/test/Makefile                             |    3 +
 app/test/test_eventdev_func.c                 | 1272 ++++++++++++++++++++++++
 app/test/test_eventdev_unit.c                 |  557 +++++++++++
 config/common_base                            |   12 +
 drivers/Makefile                              |    1 +
 drivers/event/Makefile                        |   36 +
 drivers/event/sw/Makefile                     |   59 ++
 drivers/event/sw/event_ring.h                 |  142 +++
 drivers/event/sw/iq_ring.h                    |  160 +++
 drivers/event/sw/rte_pmd_evdev_sw_version.map |    3 +
 drivers/event/sw/sw_evdev.c                   |  619 ++++++++++++
 drivers/event/sw/sw_evdev.h                   |  234 +++++
 drivers/event/sw/sw_evdev_scheduler.c         |  660 +++++++++++++
 drivers/event/sw/sw_evdev_worker.c            |  218 +++++
 examples/eventdev_pipeline/Makefile           |   49 +
 examples/eventdev_pipeline/main.c             |  717 ++++++++++++++
 lib/Makefile                                  |    1 +
 lib/librte_eal/common/include/rte_vdev.h      |    1 +
 lib/librte_eventdev/Makefile                  |   54 ++
 lib/librte_eventdev/rte_eventdev.c            |  466 +++++++++
 lib/librte_eventdev/rte_eventdev.h            | 1289 +++++++++++++++++++++++++
 lib/librte_eventdev/rte_eventdev_ops.h        |  177 ++++
 lib/librte_eventdev/rte_eventdev_pmd.h        |   69 ++
 lib/librte_eventdev/rte_eventdev_version.map  |   33 +
 mk/rte.app.mk                                 |    5 +
 25 files changed, 6837 insertions(+)
 create mode 100644 app/test/test_eventdev_func.c
 create mode 100644 app/test/test_eventdev_unit.c
 create mode 100644 drivers/event/Makefile
 create mode 100644 drivers/event/sw/Makefile
 create mode 100644 drivers/event/sw/event_ring.h
 create mode 100644 drivers/event/sw/iq_ring.h
 create mode 100644 drivers/event/sw/rte_pmd_evdev_sw_version.map
 create mode 100644 drivers/event/sw/sw_evdev.c
 create mode 100644 drivers/event/sw/sw_evdev.h
 create mode 100644 drivers/event/sw/sw_evdev_scheduler.c
 create mode 100644 drivers/event/sw/sw_evdev_worker.c
 create mode 100644 examples/eventdev_pipeline/Makefile
 create mode 100644 examples/eventdev_pipeline/main.c
 create mode 100644 lib/librte_eventdev/Makefile
 create mode 100644 lib/librte_eventdev/rte_eventdev.c
 create mode 100644 lib/librte_eventdev/rte_eventdev.h
 create mode 100644 lib/librte_eventdev/rte_eventdev_ops.h
 create mode 100644 lib/librte_eventdev/rte_eventdev_pmd.h
 create mode 100644 lib/librte_eventdev/rte_eventdev_version.map

-- 
2.7.4



More information about the dev mailing list