> -----Original Message----- > From: Eads, Gage <gage.e...@intel.com> > Sent: Thursday, January 17, 2019 11:14 PM > To: Gavin Hu (Arm Technology China) <gavin...@arm.com>; > dev@dpdk.org > Cc: olivier.m...@6wind.com; arybche...@solarflare.com; Richardson, > Bruce <bruce.richard...@intel.com>; Ananyev, Konstantin > <konstantin.anan...@intel.com>; Honnappa Nagarahalli > <honnappa.nagaraha...@arm.com> > Subject: RE: [dpdk-dev] [PATCH v2 1/2] eal: add 128-bit cmpset (x86-64 > only) > > > > > -----Original Message----- > > From: Gavin Hu (Arm Technology China) [mailto:gavin...@arm.com] > > Sent: Thursday, January 17, 2019 2:49 AM > > To: Eads, Gage <gage.e...@intel.com>; dev@dpdk.org > > Cc: olivier.m...@6wind.com; arybche...@solarflare.com; Richardson, > Bruce > > <bruce.richard...@intel.com>; Ananyev, Konstantin > > <konstantin.anan...@intel.com>; Honnappa Nagarahalli > > <honnappa.nagaraha...@arm.com> > > Subject: RE: [dpdk-dev] [PATCH v2 1/2] eal: add 128-bit cmpset (x86-64 > only) > > > > > > > > > -----Original Message----- > > > From: dev <dev-boun...@dpdk.org> On Behalf Of Gage Eads > > > Sent: Wednesday, January 16, 2019 6:33 AM > > > To: dev@dpdk.org > > > Cc: olivier.m...@6wind.com; arybche...@solarflare.com; > > > bruce.richard...@intel.com; konstantin.anan...@intel.com > > > Subject: [dpdk-dev] [PATCH v2 1/2] eal: add 128-bit cmpset (x86-64 > > > only) > > > > > > This operation can be used for non-blocking algorithms, such as a > > > non-blocking stack or ring. > > > > > > Signed-off-by: Gage Eads <gage.e...@intel.com> > > > --- > > > .../common/include/arch/x86/rte_atomic_64.h | 22 > > > ++++++++++++++++++++++ > > > 1 file changed, 22 insertions(+) > > > > > > diff --git a/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h > > > b/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h > > > index fd2ec9c53..34c2addf8 100644 > > > --- a/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h > > > +++ b/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h > > > @@ -34,6 +34,7 @@ > > > /* > > > * Inspired from FreeBSD src/sys/amd64/include/atomic.h > > > * Copyright (c) 1998 Doug Rabson > > > + * Copyright (c) 2019 Intel Corporation > > > * All rights reserved. > > > */ > > > > > > @@ -208,4 +209,25 @@ static inline void > > > rte_atomic64_clear(rte_atomic64_t *v) } #endif > > > > > > +static inline int > > > +rte_atomic128_cmpset(volatile uint64_t *dst, uint64_t *exp, uint64_t > > > *src) > > > +{ > > > +uint8_t res; > > > + > > > +asm volatile ( > > > + MPLOCKED > > > + "cmpxchg16b %[dst];" > > > + " sete %[res]" > > > + : [dst] "=m" (*dst), > > > +[res] "=r" (res) > > > + : "c" (src[1]), > > > +"b" (src[0]), > > > +"m" (*dst), > > > +"d" (exp[1]), > > > +"a" (exp[0]) > > > + : "memory"); > > > + > > > +return res; > > > +} > > > + > > > > CONFIG_RTE_DRIVER_MEMPOOL_NB_STACK=y can't coexist with > > RTE_FORCE_INTRINSICS=y, this should be explicitly described somewhere > in the > > configuration and documentations. > > > > This patch places rte_atomic128_cmpset() outside of the > RTE_FORCE_INTRINSICS ifndef, and this file is included regardless of that > config flag, so it's compiled either way. > Acked-by: Gavin Hu <gavin...@arm.com> > > > #endif /* _RTE_ATOMIC_X86_64_H_ */ > > > -- > > > 2.13.6 > >
Re: [dpdk-dev] [PATCH v2 1/2] eal: add 128-bit cmpset (x86-64 only)
Gavin Hu (Arm Technology China) Thu, 17 Jan 2019 07:57:39 -0800
- Re: [dpdk-dev] [PATCH 1/3... Varghese, Vipin
- Re: [dpdk-dev] [PATCH 1/3] eal: a... Eads, Gage
- [dpdk-dev] [PATCH 2/3] mempool/nb_stack: a... Gage Eads
- Re: [dpdk-dev] [PATCH 2/3] mempool/nb... Andrew Rybchenko
- Re: [dpdk-dev] [PATCH 2/3] mempoo... Eads, Gage
- [dpdk-dev] [PATCH 3/3] doc: add NB stack c... Gage Eads
- [dpdk-dev] [PATCH v2 0/2] Add non-blocking... Gage Eads
- [dpdk-dev] [PATCH v2 1/2] eal: add 12... Gage Eads
- Re: [dpdk-dev] [PATCH v2 1/2] eal... Gavin Hu (Arm Technology China)
- Re: [dpdk-dev] [PATCH v2 1/2]... Eads, Gage
- Re: [dpdk-dev] [PATCH v2 ... Gavin Hu (Arm Technology China)
- [dpdk-dev] [PATCH v2 2/2] mempool/nb_... Gage Eads
- Re: [dpdk-dev] [PATCH v2 2/2] mem... Andrew Rybchenko
- Re: [dpdk-dev] [PATCH v2 2/2] mem... Gavin Hu (Arm Technology China)
- Re: [dpdk-dev] [PATCH v2 2/2]... Eads, Gage
- Re: [dpdk-dev] [PATCH v2 ... Bruce Richardson
- Re: [dpdk-dev] [PATC... Eads, Gage
- Re: [dpdk-dev] [... Gavin Hu (Arm Technology China)
- Re: [dpdk-dev] [... Eads, Gage
- [dpdk-dev] [PATCH v3 0/2] Add non-blo... Gage Eads
- [dpdk-dev] [PATCH v3 1/2] eal: ad... Gage Eads