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 D86BF7CB6 for ; Mon, 20 Nov 2017 23:35:14 +0100 (CET) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Nov 2017 14:35:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,430,1505804400"; d="scan'208";a="4069238" Received: from wcpqa1.an.intel.com ([10.123.72.207]) by fmsmga004.fm.intel.com with ESMTP; 20 Nov 2017 14:35:12 -0800 From: Erik Gabriel Carrillo To: jerin.jacob@caviumnetworks.com Cc: dev@dpdk.org, pbhagavatula@caviumnetworks.com, nipun.gupta@nxp.com, hemant.agrawal@nxp.com, nikhil.rao@intel.com, narender.vangati@intel.com, rsanford@akamai.com Date: Mon, 20 Nov 2017 16:35:32 -0600 Message-Id: <1511217333-142455-1-git-send-email-erik.g.carrillo@intel.com> X-Mailer: git-send-email 1.7.10 In-Reply-To: <1506093431-57588-1-git-send-email-erik.g.carrillo@intel.com> References: <1506093431-57588-1-git-send-email-erik.g.carrillo@intel.com> Subject: [dpdk-dev] [RFC PATCH v3 0/1] eventtimer: introduce 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: , X-List-Received-Date: Mon, 20 Nov 2017 22:35:15 -0000 The following RFC patch contains a reworked version of the event timer adapter logic that would be common to both the software and hardware implementations. It contains an allocation scheme that separates the adapter state into two parts: one part that is local to a process, and another that is shared between processes. The process-local part contains fast-path function pointers valid only in that process, and the shared part contains data that can be used in both processes. It also lays out the mechanism by which eventdev PMDs can plug their own implementations into the API if they wish to: if a PMD wishes to provide an implementation for the event timer adapter API, it can define and return an ops structure which the API will call through. Otherwise, a PMD can return a null ops structure to allow the API to fall back on a default software implementation that will be added in an upcoming version of this patch. checkpatches.sh reports a few warnings for "macros with flow control", but I have left them in since they seem to be in common usage in DPDK. One other checkpatch warning is caused by use of an extern in a .c file, but I left that in since it was useful for splitting the software implementation into its own file. Thanks, Gabriel Erik Gabriel Carrillo (1): eventtimer: introduce event timer adapter doc/api/doxy-api-index.md | 1 + drivers/event/sw/sw_evdev.c | 16 + lib/librte_eventdev/Makefile | 4 + lib/librte_eventdev/rte_event_timer_adapter.c | 428 +++++++++++++++++++++ lib/librte_eventdev/rte_event_timer_adapter.h | 427 ++++++++++++++++++++ .../rte_event_timer_adapter_driver.h | 159 ++++++++ lib/librte_eventdev/rte_eventdev.h | 3 + lib/librte_eventdev/rte_eventdev_pmd.h | 7 + lib/librte_eventdev/rte_eventdev_version.map | 15 +- lib/librte_eventdev/sw_event_timer_adapter.c | 123 ++++++ test/test/Makefile | 1 + test/test/test_event_timer_adapter.c | 249 ++++++++++++ 12 files changed, 1432 insertions(+), 1 deletion(-) create mode 100644 lib/librte_eventdev/rte_event_timer_adapter.c create mode 100644 lib/librte_eventdev/rte_event_timer_adapter.h create mode 100644 lib/librte_eventdev/rte_event_timer_adapter_driver.h create mode 100644 lib/librte_eventdev/sw_event_timer_adapter.c create mode 100644 test/test/test_event_timer_adapter.c -- 2.6.4