From mboxrd@z Thu Jan 1 00:00:00 1970 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) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Jun 2017 08:06:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,287,1496127600"; d="scan'208";a="873507480" Received: from silpixa00399126.ir.intel.com (HELO silpixa00399126.ger.corp.intel.com) ([10.237.223.223]) by FMSMGA003.fm.intel.com with ESMTP; 30 Jun 2017 08:06:34 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: olivier.matz@6wind.com, jerin.jacob@caviumnetworks.com, Bruce Richardson Date: Fri, 30 Jun 2017 16:06:16 +0100 Message-Id: <20170630150621.156365-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170607133620.275801-1-bruce.richardson@intel.com> References: <20170607133620.275801-1-bruce.richardson@intel.com> Subject: [dpdk-dev] [PATCH v2 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: Fri, 30 Jun 2017 15:06:39 -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. 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