From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruce Richardson Subject: [PATCH v2 0/5] create event rings type Date: Fri, 30 Jun 2017 16:06:16 +0100 Message-ID: <20170630150621.156365-1-bruce.richardson@intel.com> References: <20170607133620.275801-1-bruce.richardson@intel.com> Cc: olivier.matz@6wind.com, jerin.jacob@caviumnetworks.com, Bruce Richardson To: dev@dpdk.org Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 1EF80568A for ; Fri, 30 Jun 2017 17:06:38 +0200 (CEST) In-Reply-To: <20170607133620.275801-1-bruce.richardson@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Following on from the refactoring of the rte_rings code done in the 17.05 release, it becomes relatively easy to create new ring implementations for data types other than "void *". The first candidate for this is the rte_event type, which being 16B in size, is small enough to be passed around directly rather than via pointer. The SW eventdev implementation already defines an event ring implementation and this can be replaced by a more general implementation done in the eventdev library itself. However, feature parity between the SW eventdev implementation and a general rte_ring implementation is required, so support for rings of a defined size is added to the rte_ring library first. v2: minor adjustments made following review feedback. Bruce Richardson (5): ring: allow rings with non power-of-2 sizes test/test: add unit tests for exact size rings eventdev: add ring structure for events test/test: add auto-tests for event ring functions event/sw: change worker rings to standard event rings drivers/event/sw/sw_evdev.c | 38 ++-- drivers/event/sw/sw_evdev.h | 4 +- drivers/event/sw/sw_evdev_scheduler.c | 19 +- drivers/event/sw/sw_evdev_worker.c | 28 ++- drivers/event/sw/sw_evdev_xstats.c | 15 +- lib/Makefile | 2 +- lib/librte_eventdev/Makefile | 2 + lib/librte_eventdev/rte_event_ring.c | 207 ++++++++++++++++++ lib/librte_eventdev/rte_event_ring.h | 308 +++++++++++++++++++++++++++ lib/librte_eventdev/rte_eventdev_version.map | 9 + lib/librte_ring/rte_ring.c | 26 ++- lib/librte_ring/rte_ring.h | 89 +++++--- test/test/Makefile | 1 + test/test/test_event_ring.c | 275 ++++++++++++++++++++++++ test/test/test_ring.c | 74 +++++++ 15 files changed, 1020 insertions(+), 77 deletions(-) create mode 100644 lib/librte_eventdev/rte_event_ring.c create mode 100644 lib/librte_eventdev/rte_event_ring.h create mode 100644 test/test/test_event_ring.c -- 2.13.0