Message ID | 1543534514-183766-1-git-send-email-erik.g.carrillo@intel.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 86DC51B512; Fri, 30 Nov 2018 00:35:18 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id DC92A1B50E for <dev@dpdk.org>; Fri, 30 Nov 2018 00:35:16 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2018 15:35:16 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,296,1539673200"; d="scan'208";a="119272129" Received: from wcpqa1.an.intel.com ([10.123.72.207]) by fmsmga001.fm.intel.com with ESMTP; 29 Nov 2018 15:35:15 -0800 From: Erik Gabriel Carrillo <erik.g.carrillo@intel.com> To: pbhagavatula@caviumnetworks.com, jerin.jacob@caviumnetworks.com, rsanford@akamai.com Cc: dev@dpdk.org Date: Thu, 29 Nov 2018 17:35:11 -0600 Message-Id: <1543534514-183766-1-git-send-email-erik.g.carrillo@intel.com> X-Mailer: git-send-email 1.7.10 Subject: [dpdk-dev] [PATCH 0/3] new software event timer adapter X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
new software event timer adapter
|
|
Message
Carrillo, Erik G
Nov. 29, 2018, 11:35 p.m. UTC
This patch series 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 the lcores in both primary and secondary processes insert timers into directly into the timer skiplist data structures; the service core directly accesses the lists as well. To achieve this, however, modifications to the timer library [2] are required to enable the timer skiplists to be created and accessed in shared memory. New APIs are introduced in the timer library to enable selecting from multiple instances of the timer skiplists. Instances of the event timer adapter, as well as the original APIs of the timer library, can then each access distinct timer lists. Future versions of this series will hopefully improve the names used for the data structures and APIs in the timer library. This series depends on the following patch: https://patches.dpdk.org/patch/48417/ [1] https://doc.dpdk.org/guides/prog_guide/event_timer_adapter.html [2] https://doc.dpdk.org/guides/prog_guide/timer_lib.html Erik Gabriel Carrillo (3): timer: allow timer management in shared memory timer: add function to stop all timers in a list eventdev: add new software event timer adapter lib/librte_eventdev/rte_event_timer_adapter.c | 687 +++++++++++--------------- lib/librte_timer/Makefile | 1 + lib/librte_timer/rte_timer.c | 579 ++++++++++++++++++---- lib/librte_timer/rte_timer.h | 200 +++++++- lib/librte_timer/rte_timer_version.map | 22 +- 5 files changed, 972 insertions(+), 517 deletions(-)
Comments
Hi Eric, I think we may need to address the librte_timer and event_timer patches in separate series as we are modifying common code for the sake of sw_event_timer PMD and the series title implies that only the PMD has been modified. Also, I think we need to profile and report the performance regression (timer_perf_autotest,) if any of the rte_timer library with the new patches as it is also used as a standalone library. On Thu, Nov 29, 2018 at 05:35:11PM -0600, Erik Gabriel Carrillo wrote: > This patch series 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 the lcores in both primary and secondary > processes insert timers into directly into the timer skiplist data > structures; the service core directly accesses the lists as well. > To achieve this, however, modifications to the timer library [2] are > required to enable the timer skiplists to be created and accessed in > shared memory. New APIs are introduced in the timer library to enable > selecting from multiple instances of the timer skiplists. Instances of > the event timer adapter, as well as the original APIs of the timer > library, can then each access distinct timer lists. > > Future versions of this series will hopefully improve the names > used for the data structures and APIs in the timer library. > > This series depends on the following patch: > https://patches.dpdk.org/patch/48417/ > > [1] https://doc.dpdk.org/guides/prog_guide/event_timer_adapter.html > [2] https://doc.dpdk.org/guides/prog_guide/timer_lib.html > > Erik Gabriel Carrillo (3): > timer: allow timer management in shared memory > timer: add function to stop all timers in a list > eventdev: add new software event timer adapter > > lib/librte_eventdev/rte_event_timer_adapter.c | 687 +++++++++++--------------- > lib/librte_timer/Makefile | 1 + > lib/librte_timer/rte_timer.c | 579 ++++++++++++++++++---- > lib/librte_timer/rte_timer.h | 200 +++++++- > lib/librte_timer/rte_timer_version.map | 22 +- > 5 files changed, 972 insertions(+), 517 deletions(-) > > -- > 2.6.4 >
Hi Pavan, Thanks for the feedback. Response inline: > -----Original Message----- > From: Pavan Nikhilesh [mailto:pbhagavatula@caviumnetworks.com] > Sent: Friday, November 30, 2018 1:26 AM > To: Carrillo, Erik G <erik.g.carrillo@intel.com>; Jacob, Jerin > <Jerin.JacobKollanukkaran@cavium.com>; rsanford@akamai.com > Cc: stephen@networkplumber.org; dev@dpdk.org > Subject: Re: [PATCH 0/3] new software event timer adapter > > Hi Eric, > > I think we may need to address the librte_timer and event_timer patches in > separate series as we are modifying common code for the sake of > sw_event_timer PMD and the series title implies that only the PMD has been > modified. > > Also, I think we need to profile and report the performance regression > (timer_perf_autotest,) if any of the rte_timer library with the new patches > as it is also used as a standalone library. > Makes sense. I'll separate the series and check for a performance regression in the timer library for the next iteration. Thanks, Erik > On Thu, Nov 29, 2018 at 05:35:11PM -0600, Erik Gabriel Carrillo wrote: > > This patch series 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 the lcores in both primary and secondary > > processes insert timers into directly into the timer skiplist data > > structures; the service core directly accesses the lists as well. > > To achieve this, however, modifications to the timer library [2] are > > required to enable the timer skiplists to be created and accessed in > > shared memory. New APIs are introduced in the timer library to enable > > selecting from multiple instances of the timer skiplists. Instances of > > the event timer adapter, as well as the original APIs of the timer > > library, can then each access distinct timer lists. > > > > Future versions of this series will hopefully improve the names used > > for the data structures and APIs in the timer library. > > > > This series depends on the following patch: > > https://patches.dpdk.org/patch/48417/ > > > > [1] https://doc.dpdk.org/guides/prog_guide/event_timer_adapter.html > > [2] https://doc.dpdk.org/guides/prog_guide/timer_lib.html > > > > Erik Gabriel Carrillo (3): > > timer: allow timer management in shared memory > > timer: add function to stop all timers in a list > > eventdev: add new software event timer adapter > > > > lib/librte_eventdev/rte_event_timer_adapter.c | 687 +++++++++++------- > -------- > > lib/librte_timer/Makefile | 1 + > > lib/librte_timer/rte_timer.c | 579 ++++++++++++++++++---- > > lib/librte_timer/rte_timer.h | 200 +++++++- > > lib/librte_timer/rte_timer_version.map | 22 +- > > 5 files changed, 972 insertions(+), 517 deletions(-) > > > > -- > > 2.6.4 > >