Re: [dpdk-dev] [PATCH v3 1/3] rwlock: reimplement with atomic builtins

2019-03-19 Thread Gavin Hu (Arm Technology China)
Hi Konstantin, > -Original Message- > From: Ananyev, Konstantin > Sent: Friday, March 15, 2019 7:41 PM > To: Joyce Kong (Arm Technology China) ; > dev@dpdk.org > Cc: nd ; Gavin Hu (Arm Technology China) > ; jer...@marvell.com; chao...@linux.vnet.ibm.com; > Richardson, Bruce ; tho...@monj

Re: [dpdk-dev] [PATCH v3 1/3] rwlock: reimplement with atomic builtins

2019-03-15 Thread Ananyev, Konstantin
Hi, > The __sync builtin based implementation generates full memory > barriers ('dmb ish') on Arm platforms. Using C11 atomic builtins > to generate one way barriers. > > Here is the assembly code of __sync_compare_and_swap builtin. > __sync_bool_compare_and_swap(dst, exp, src); >0x0

Re: [dpdk-dev] [PATCH v3 1/3] rwlock: reimplement with atomic builtins

2019-03-14 Thread Gavin Hu (Arm Technology China)
..@linux.vnet.ibm.com; bruce.richard...@intel.com; > tho...@monjalon.net; hemant.agra...@nxp.com; Honnappa Nagarahalli > > Subject: Re: [dpdk-dev] [PATCH v3 1/3] rwlock: reimplement with atomic > builtins > > On Thu, 14 Mar 2019 21:15:02 +0800 > Joyce Kong wrote: > > >

Re: [dpdk-dev] [PATCH v3 1/3] rwlock: reimplement with atomic builtins

2019-03-14 Thread Stephen Hemminger
On Thu, 14 Mar 2019 21:15:02 +0800 Joyce Kong wrote: > - success = rte_atomic32_cmpset((volatile uint32_t *)&rwl->cnt, > - (uint32_t)x, (uint32_t)(x + 1)); > + success = __atomic_compare_exchange_n(&rwl->cnt, &x, x+1, 1, > +

[dpdk-dev] [PATCH v3 1/3] rwlock: reimplement with atomic builtins

2019-03-14 Thread Joyce Kong
From: Gavin Hu The __sync builtin based implementation generates full memory barriers ('dmb ish') on Arm platforms. Using C11 atomic builtins to generate one way barriers. Here is the assembly code of __sync_compare_and_swap builtin. __sync_bool_compare_and_swap(dst, exp, src); 0x0090