[dpdk-dev] [RFC PATCH 0/7] RFC: EventDev Software PMD
Jerin Jacob
jerin.jacob at caviumnetworks.com
Wed Nov 16 21:19:25 CET 2016
On Wed, Nov 16, 2016 at 06:00:00PM +0000, Harry van Haaren wrote:
> 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.
Thanks. Harry.
Even I was writing the similar stuff.I took a bit different approach on
the common code side, where I was trying to have fat common code(
lib/librte_eventdev/rte_eventdev.c) with start/stop support for the
slow-path code. I will post the implementation in few days and then we
can work on a converged solution.
Following sections of code does not have any overlap at all.
test/eventdev: unit and functional tests
event/sw: software eventdev implementation
examples/eventdev_pipeline: adding example
Some questions and initial feedback
1) I thought RTE_EVENT_OP_DROP and rte_event_release() are same ? No ?
2) device stats API can be based on capability, HW implementations may not
support all the stats
3) From the HW implementation perspective, eventdev_pipeline application
needs to have a lot of changes.I will post the comments in coming days
and we can work together on the converged solution.
Jerin
>
> 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