Message ID | 1544205180-31546-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 E65EC5F1A; Fri, 7 Dec 2018 18:53:26 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 12AFC5F17 for <dev@dpdk.org>; Fri, 7 Dec 2018 18:53:25 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Dec 2018 09:53:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,327,1539673200"; d="scan'208";a="281807739" Received: from txasoft-yocto.an.intel.com (HELO txasoft-yocto.an.intel.com.) ([10.123.72.192]) by orsmga005.jf.intel.com with ESMTP; 07 Dec 2018 09:53:24 -0800 From: Erik Gabriel Carrillo <erik.g.carrillo@intel.com> To: rsanford@akamai.com Cc: jerin.jacob@caviumnetworks.com, pbhagavatula@caviumnetworks.com, dev@dpdk.org Date: Fri, 7 Dec 2018 11:52:58 -0600 Message-Id: <1544205180-31546-1-git-send-email-erik.g.carrillo@intel.com> X-Mailer: git-send-email 1.7.10 In-Reply-To: <1543534514-183766-1-git-send-email-erik.g.carrillo@intel.com> References: <1543534514-183766-1-git-send-email-erik.g.carrillo@intel.com> Subject: [dpdk-dev] [PATCH v2 0/2] Timer library changes 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 |
Timer library changes
|
|
Message
Carrillo, Erik G
Dec. 7, 2018, 5:52 p.m. UTC
This patch series modifies the timer library in such a way that structures that used to be statically allocated in a process's data segment are now allocated in shared memory. As these structures contain lists of timers, new APIs are introduced that allow a caller to specify the particular structure instance into which a timer should be inserted or from which a timer should be removed. This enables primary and secondary processes to modify the same timer list, which enables some multi-process use cases that were not previously possible; e.g. a secondary process can start a timer whose expiration is detected in a primary process running a new flavor of timer_manage(). The original library API is mostly unchanged, though implementations are updated to call into newly added functions with a default structure instance ID that provides the original behavior. New functions are introduced to enable applications to allocate structure instances to house timer lists, and to reference them with an identifier when starting and stopping timers, and finally, to manage the timer lists referenced with an identifier. My initial performance testing with the "timer_perf_autotest" test shows no performance regression or improvement, and inspection of the generated optimized code shows that the extra function call gets inlined in the functions that now have an extra function call. Depends on: https://patches.dpdk.org/patch/48417/ Changes in v2: - split these changes out into their own series - version the symbols where the existing ABI was updated, and provide alternate implementation with behavior equivalent to original behavior. Validate ABI compatibility with validate-abi.sh - refactor changes to simplify patches Erik Gabriel Carrillo (2): timer: allow timer management in shared memory timer: add function to stop all timers in a list lib/librte_timer/Makefile | 1 + lib/librte_timer/rte_timer.c | 558 ++++++++++++++++++++++++++++++--- lib/librte_timer/rte_timer.h | 258 ++++++++++++++- lib/librte_timer/rte_timer_version.map | 23 ++ 4 files changed, 795 insertions(+), 45 deletions(-)