> -----Original Message----- > From: Phil Yang <phil.y...@arm.com> > Sent: Monday, July 22, 2019 9:53 PM > To: dev@dpdk.org > Cc: tho...@monjalon.net; Jerin Jacob Kollanukkaran <jer...@marvell.com>; > gage.e...@intel.com; hemant.agra...@nxp.com; > honnappa.nagaraha...@arm.com; gavin...@arm.com; n...@arm.com > Subject: [EXT] [PATCH v6 1/3] eal/arm64: add 128-bit atomic compare > exchange > > Add 128-bit atomic compare exchange on aarch64. > > Suggested-by: Jerin Jacob <jer...@marvell.com> > Signed-off-by: Phil Yang <phil.y...@arm.com> > Tested-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > > --- > diff --git a/config/common_base b/config/common_base index > 8ef75c2..de6d1e0 100644 > --- a/config/common_base > +++ b/config/common_base > @@ -82,6 +82,8 @@ CONFIG_RTE_MAX_LCORE=128 > CONFIG_RTE_MAX_NUMA_NODES=8 > CONFIG_RTE_MAX_HEAPS=32 > CONFIG_RTE_MAX_MEMSEG_LISTS=64
Add new line here. > +# Use LSE ATOMIC instructions I think, you can change the comment to "Use ARM LSE ATOMIC instructions" > +CONFIG_RTE_ARM_FEATURE_ATOMICS=n This patches series has following check patch warning. Please fix it With above fixes you can add my acked-by in 1/3 and 3/3 patches in next revision. I think, you can ignore following warning. WARNING:MACRO_WITH_FLOW_CONTROL: Macros with flow control statements should be avoided [master]dell[dpdk.org] $ ./devtools/checkpatches.sh ### eal/arm64: add 128-bit atomic compare exchange WARNING:LONG_LINE: line over 80 characters #103: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:60: + rte_int128_t updated) \ WARNING:LONG_LINE: line over 80 characters #108: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:65: + */ \ WARNING:LINE_CONTINUATIONS: Avoid unnecessary line continuations #108: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:65: + */ \ WARNING:LONG_LINE: line over 80 characters #109: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:66: + register uint64_t x0 __asm("x0") = (uint64_t)old.val[0]; \ WARNING:LONG_LINE: line over 80 characters #110: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:67: + register uint64_t x1 __asm("x1") = (uint64_t)old.val[1]; \ WARNING:LONG_LINE: line over 80 characters #111: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:68: + register uint64_t x2 __asm("x2") = (uint64_t)updated.val[0]; \ WARNING:LONG_LINE: line over 80 characters #112: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:69: + register uint64_t x3 __asm("x3") = (uint64_t)updated.val[1]; \ WARNING:LONG_LINE: line over 80 characters #113: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:70: + asm volatile( \ WARNING:LONG_LINE: line over 80 characters #115: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:72: + : [old0] "+r" (x0), \ WARNING:LONG_LINE: line over 80 characters #116: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:73: + [old1] "+r" (x1) \ WARNING:LONG_LINE: line over 80 characters #118: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:75: + [upd1] "r" (x3), \ WARNING:LONG_LINE: line over 80 characters #119: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:76: + [dst] "r" (dst) \ WARNING:LONG_LINE: line over 80 characters #120: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:77: + : "memory"); \ WARNING:LONG_LINE: line over 80 characters #121: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:78: + old.val[0] = x0; \ WARNING:LONG_LINE: line over 80 characters #122: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:79: + old.val[1] = x1; \ WARNING:LONG_LINE: line over 80 characters #123: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:80: + return old; \ WARNING:LONG_LINE: line over 80 characters #135: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:92: + rte_int128_t ret; \ WARNING:LONG_LINE: line over 80 characters #136: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:93: + asm volatile( \ WARNING:LONG_LINE: line over 80 characters #138: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:95: + : "=&r" (ret.val[0]), \ WARNING:LONG_LINE: line over 80 characters #139: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:96: + "=&r" (ret.val[1]) \ WARNING:LONG_LINE: line over 80 characters #140: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:97: + : "Q" (src->val[0]) \ WARNING:LONG_LINE: line over 80 characters