[dpdk-dev] [PATCH v4 5/6] service: optimize with c11 atomics

Phil Yang Phil.Yang at arm.com
Wed May 6 12:20:40 CEST 2020


> -----Original Message-----
> From: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
> Sent: Wednesday, May 6, 2020 5:18 AM
> To: dev at dpdk.org; Phil Yang <Phil.Yang at arm.com>;
> harry.van.haaren at intel.com
> Cc: thomas at monjalon.net; david.marchand at redhat.com;
> konstantin.ananyev at intel.com; jerinj at marvell.com;
> hemant.agrawal at nxp.com; gage.eads at intel.com;
> bruce.richardson at intel.com; Honnappa Nagarahalli
> <Honnappa.Nagarahalli at arm.com>; nd <nd at arm.com>
> Subject: [PATCH v4 5/6] service: optimize with c11 atomics
> 
> From: Phil Yang <phil.yang at arm.com>
> 
> The num_mapped_cores is used as a statistics. Use c11 atomics with
> RELAXED ordering for num_mapped_cores instead of rte_atomic ops which
> enforce unnessary barriers on aarch64.
> 
> Replace execute_lock operations to spinlock_try_lock to avoid duplicate
> code.
> 
> Signed-off-by: Phil Yang <phil.yang at arm.com>
> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
> Acked-by: Harry van Haaren <harry.van.haaren at intel.com>
> ---
>  lib/librte_eal/common/rte_service.c | 32 ++++++++++++++++-------------
>  lib/librte_eal/meson.build          |  4 ++++
>  2 files changed, 22 insertions(+), 14 deletions(-)
> 
<snip>

> diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build
> index 0267c3b9d..c2d7a6954 100644
> --- a/lib/librte_eal/meson.build
> +++ b/lib/librte_eal/meson.build
> @@ -21,3 +21,7 @@ endif
>  if cc.has_header('getopt.h')
>  	cflags += ['-DHAVE_GETOPT_H', '-DHAVE_GETOPT', '-
> DHAVE_GETOPT_LONG']
>  endif
> +# for clang 32-bit compiles we need libatomic for 64-bit atomic ops
> +if cc.get_id() == 'clang' and dpdk_conf.get('RTE_ARCH_64') == false
> +    ext_deps += cc.find_library('atomic')
> +endif

We can remove this as it has been added in global. 
"da4eae278b56 - build: add global libatomic dependency for 32-bit clang"

I've updated it in v5.

Thanks,
Phil
> --
> 2.17.1



More information about the dev mailing list