From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 869B71CDA8 for ; Thu, 5 Apr 2018 23:53:40 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Apr 2018 14:53:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,412,1517904000"; d="scan'208";a="189027576" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga004.jf.intel.com with ESMTP; 05 Apr 2018 14:53:38 -0700 Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 5 Apr 2018 14:53:37 -0700 Received: from fmsmsx115.amr.corp.intel.com ([169.254.4.26]) by fmsmsx121.amr.corp.intel.com ([169.254.6.214]) with mapi id 14.03.0319.002; Thu, 5 Apr 2018 14:53:37 -0700 From: "Carrillo, Erik G" To: Thomas Monjalon CC: "dev@dpdk.org" , "rsanford@akamai.com" , "Mcnamara, John" Thread-Topic: [dpdk-dev] [PATCH v4 0/3] timer library enhancement Thread-Index: AQHTMWjfJ8bIqmXbS0a9kKFdb55zraPyabq8gAGEPPA= Date: Thu, 5 Apr 2018 21:53:36 +0000 Message-ID: References: <1505340308-86141-1-git-send-email-erik.g.carrillo@intel.com> <1505840548-77004-1-git-send-email-erik.g.carrillo@intel.com> <53861185.JAf0AvXReA@xps> <23441980.cXtjEeRPDa@xps> In-Reply-To: <23441980.cXtjEeRPDa@xps> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiODNlNTZjM2QtNzcwNy00ZTFiLTk0MzAtZjYwZWFmNzZlZmZhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJcLzl2UUM2XC9nWVwvVnFTY0ZJNE9jM01aeHVzc2x5T0JxVW9td09FRUlFQzRBNGx1ZXNhd05MQlhJQ1JFSDJWVTFEIn0= x-ctpclassification: CTP_NT x-originating-ip: [10.1.200.106] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4 0/3] timer library enhancement 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: Thu, 05 Apr 2018 21:53:41 -0000 Hi Thomas, OK, I'll take a fresh look at these. Thanks, Erik > -----Original Message----- > From: Thomas Monjalon [mailto:thomas@monjalon.net] > Sent: Wednesday, April 4, 2018 5:43 PM > To: Carrillo, Erik G > Cc: dev@dpdk.org; rsanford@akamai.com; Mcnamara, John > > Subject: Re: [dpdk-dev] [PATCH v4 0/3] timer library enhancement >=20 > Let's revive these patches. > Erik, could you rebase them with experimental tag, please? >=20 > Someone for a review? >=20 >=20 > 11/10/2017 22:42, Thomas Monjalon: > > This patchset is waiting for review. > > > > Robert, are you available? > > > > 19/09/2017 19:02, Erik Gabriel Carrillo: > > > In the current implementation of the DPDK timer library, timers can > > > be created and set to be handled by a target lcore by adding it to a > > > skiplist that corresponds to that lcore. However, if an application > > > enables multiple lcores, and each of these lcores repeatedly > > > attempts to install timers on the same target lcore, overall > > > application throughput will be reduced as all lcores contend to > > > acquire the lock guarding the single skiplist of pending timers. > > > > > > This patchset addresses this scenario by adding an option to enable > > > an array of skiplists in each lcore's priv_timer struct. Then, when > > > lcore i installs a timer on lcore k, the timer will be added to the > > > ith skiplist for lcore k. If lcore j installs a timer on lcore k > > > simultaneously, lcores i and j can both proceed since they will be > > > acquiring different locks for different lists. This functionality is > > > off by default, and can be enabled via a new function. > > > > > > When lcore k processes its pending timers, if the multiple pending > > > list option is enabled, it will traverse skiplists in its array and > > > acquire the current skiplist's lock while a run list is broken out; > > > meanwhile, all other lists can continue to be modified. Then, all > > > run lists for lcore k are collected and traversed together so timers > > > are executed in their relative order. If the multiple pending list > > > option is not enabled (the default), only a single list will be trave= rsed, as > before. > > > > > > Erik Gabriel Carrillo (3): > > > timer: add multiple pending lists option for each lcore > > > timer: handle timers installed from non-EAL threads > > > doc: update timer lib docs > > > > > > >=20 >=20 >=20 >=20