From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ananyev, Konstantin" Subject: Re: [PATCH v8 0/3] generic spinlock optimization and test case enhancements Date: Fri, 15 Mar 2019 12:21:03 +0000 Message-ID: <2601191342CEEE43887BDE71AB977258013655BF58@irsmsx105.ger.corp.intel.com> References: <20181220104246.5590-1-gavin.hu@arm.com> <1552031797-146710-1-git-send-email-gavin.hu@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "nd@arm.com" , "thomas@monjalon.net" , "jerinj@marvell.com" , "hemant.agrawal@nxp.com" , "nipun.gupta@nxp.com" , "Honnappa.Nagarahalli@arm.com" , "i.maximets@samsung.com" , "chaozhu@linux.vnet.ibm.com" To: Gavin Hu , "dev@dpdk.org" Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 693BC2C24 for ; Fri, 15 Mar 2019 13:21:08 +0100 (CET) In-Reply-To: <1552031797-146710-1-git-send-email-gavin.hu@arm.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" >=20 > V8: Remove internal ChangeId >=20 > V7: Update the 1/3 patch headline and commit message >=20 > V6: Rebase and drop the first patch as a similar fix was already merged. >=20 > V5: Remove ChangeId(sorry for that) >=20 > V4: > 1. Drop one patch for the test case to get time precisely as the overhead > of getting time is amortized already in another patch. > 2. Drop the ticket lock patch from this series as there are no dependency > between them, the ticket lock patch was submitted separately: > http://patchwork.dpdk.org/patch/49770/ > 3. Define volatile variable in patch #3 to be more realistic for spinlock > protection(avoid optimization be compiler). > 4. Fix typos. >=20 > V3: > 1. Implemented the ticket lock to improve the fairness and predictability= . > The locks are obtained in the order of requested. >=20 > V2: > 1. FORCE_INTRINCIS is still an option for ppc/x86, although not is use > by default, so don't remove it from generic file. > 2. Fix the clang compiler error on x86 when the above FORCE_INTRINSICS > is enabled. >=20 > V1: > 1. Remove the 1us delay outside of the locked region to really benchmark > the spinlock acquire/release performance, not the delay API. > 2. Use the precise version of getting timestamps for more precise > benchmarking results. > 3. Amortize the overhead of getting the timestamp by 10000 loops. > 4. Move the arm specific implementation to arm folder to remove the > hardcoded implementation. > 5. Use atomic primitives, which translate to one-way barriers, instead of > two-way sync primitives, to optimize for performance. >=20 > Gavin Hu (3): > test/spinlock: remove 1us delay for correct benchmarking > test/spinlock: amortize the cost of getting time > spinlock: reimplement with atomic one-way barrier builtins >=20 > app/test/test_spinlock.c | 31 +++++++++++-----= ------ > .../common/include/generic/rte_spinlock.h | 18 +++++++++---- > 2 files changed, 29 insertions(+), 20 deletions(-) >=20 > -- Acked-by: Konstantin Ananyev > 2.7.4