From patchwork Mon Apr 22 14:57:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Carrillo, Erik G" X-Patchwork-Id: 52982 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4D3241B40F; Mon, 22 Apr 2019 16:58:50 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id E293B7CCA for ; Mon, 22 Apr 2019 16:58:48 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Apr 2019 07:58:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,382,1549958400"; d="scan'208";a="163974368" Received: from txasoft-yocto.an.intel.com ([10.123.72.192]) by fmsmga004.fm.intel.com with ESMTP; 22 Apr 2019 07:58:47 -0700 From: Erik Gabriel Carrillo To: jerin.jacob@caviumnetworks.com Cc: pbhagavatula@caviumnetworks.com, mattias.ronnblom@ericsson.com, dev@dpdk.org Date: Mon, 22 Apr 2019 09:57:38 -0500 Message-Id: <1555945059-14808-1-git-send-email-erik.g.carrillo@intel.com> X-Mailer: git-send-email 1.7.10 In-Reply-To: <1544829347-29302-1-git-send-email-erik.g.carrillo@intel.com> References: <1544829347-29302-1-git-send-email-erik.g.carrillo@intel.com> Subject: [dpdk-dev] [PATCH v5 0/1] New software event timer adapter 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch introduces a new version of the event timer adapter software PMD [1]. In the original design, timer event producer lcores in the primary and secondary processes enqueued event timers into a ring, and a service core in the primary process dequeued them and processed them further. To improve performance, this version does away with the ring and lets lcores in both primary and secondary processes insert timers directly into timer skiplist data structures; the service core directly accesses the lists as well, when looking for timers that have expired. [1] https://doc.dpdk.org/guides/prog_guide/event_timer_adapter.html Changes in v5: - Rebase patch to apply with latest timer library - Fix event buffering bug where full buffer was treated as empty - Return rte_timer objects back to mempool after service function has returned from timer_manage() call instead of in callback Changes in v4: - Addressed the following comments from Mattias Ronnblom: - remove unnecessary header include - add missing read barrier in timer cancel function Changes in v3: - Addressed comments from Mattias Ronnblom: - remove unnecessary header include - remove unnecessary cast in mempool_put() call - update alignment of elements of array to avoid false sharing issue Changes in v2: - split this change out into its own patch series Erik Gabriel Carrillo (1): eventdev: add new software event timer adapter lib/librte_eventdev/rte_event_timer_adapter.c | 703 +++++++++++--------------- 1 file changed, 291 insertions(+), 412 deletions(-)