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 >