From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry van Haaren Subject: [RFC PATCH 0/7] RFC: EventDev Software PMD Date: Wed, 16 Nov 2016 18:00:00 +0000 Message-ID: <1479319207-130646-1-git-send-email-harry.van.haaren@intel.com> Cc: Harry van Haaren To: dev@dpdk.org Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 1F3965598 for ; Wed, 16 Nov 2016 19:00:18 +0100 (CET) List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 [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