numam-dpdk/lib/librte_eal
Herbert Guan cd7fc8a84b eal/arm64: optimize memcpy
This patch provides an option to do rte_memcpy() using 'restrict'
qualifier, which can induce GCC to do optimizations by using more
efficient instructions, providing some performance gain over memcpy()
on some ARM64 platforms/enviroments.

The memory copy performance differs between different ARM64
platforms. And a more recent glibc (e.g. 2.23 or later)
can provide a better memcpy() performance compared to old glibc
versions. It's always suggested to use a more recent glibc if
possible, from which the entire system can get benefit. If for some
reason an old glibc has to be used, this patch is provided for an
alternative.

This implementation can improve memory copy on some ARM64
platforms, when an old glibc (e.g. 2.19, 2.17...) is being used.
It is disabled by default and needs "RTE_ARCH_ARM64_MEMCPY"
defined to activate. It's not always proving better performance
than memcpy() so users need to run DPDK unit test
"memcpy_perf_autotest" and customize parameters in "customization
section" in rte_memcpy_64.h for best performance.

Compiler version will also impact the rte_memcpy() performance.
It's observed on some platforms and with the same code, GCC 7.2.0
compiled binary can provide better performance than GCC 4.8.5. It's
suggested to use GCC 5.4.0 or later.

Signed-off-by: Herbert Guan <herbert.guan@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-01-20 17:47:25 +01:00
..
bsdapp vfio: fix FreeBSD build 2018-01-17 18:49:38 +01:00
common eal/arm64: optimize memcpy 2018-01-20 17:47:25 +01:00
linuxapp vfio: improve noiommu check error handling 2018-01-20 16:04:37 +01:00
Makefile lib: use SPDX tag for Intel copyright files 2018-01-04 22:41:39 +01:00
rte_eal_version.map vfio: expose clear group function for internal usages 2018-01-17 00:43:04 +01:00