From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 9C54523B for ; Wed, 7 Jun 2017 16:05:30 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga105.jf.intel.com with ESMTP; 07 Jun 2017 07:05:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.39,311,1493708400"; d="scan'208";a="1157667573" Received: from silpixa00399126.ir.intel.com (HELO silpixa00399126.ger.corp.intel.com) ([10.237.223.223]) by fmsmga001.fm.intel.com with ESMTP; 07 Jun 2017 07:05:28 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: olivier.matz@6wind.com, jerin.jacob@caviumnetworks.com, Bruce Richardson Date: Wed, 7 Jun 2017 14:36:15 +0100 Message-Id: <20170607133620.275801-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.9.4 Subject: [dpdk-dev] [PATCH 0/5] create event rings type X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2017 14:05:31 -0000 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. 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/event_ring.h | 185 ---------------- 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 | 312 +++++++++++++++++++++++++++ lib/librte_eventdev/rte_eventdev_version.map | 9 + lib/librte_ring/rte_ring.c | 26 ++- lib/librte_ring/rte_ring.h | 88 +++++--- test/test/Makefile | 1 + test/test/test_event_ring.c | 275 +++++++++++++++++++++++ test/test/test_ring.c | 71 ++++++ 16 files changed, 1020 insertions(+), 262 deletions(-) delete mode 100644 drivers/event/sw/event_ring.h 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.9.4