The flag is used to enable memcpy optimizations in EAL. As it is not always the performance benefit, the flag allows to disable it.
Signed-off-by: Jan Viktorin <viktorin at rehivetech.com> --- config/defconfig_arm-armv7a-linuxapp-gcc | 1 + lib/librte_eal/common/include/arch/arm/rte_memcpy_32.h | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/config/defconfig_arm-armv7a-linuxapp-gcc b/config/defconfig_arm-armv7a-linuxapp-gcc index 96c3343..2c60c2c 100644 --- a/config/defconfig_arm-armv7a-linuxapp-gcc +++ b/config/defconfig_arm-armv7a-linuxapp-gcc @@ -36,6 +36,7 @@ CONFIG_RTE_ARCH="arm" CONFIG_RTE_ARCH_ARM=y CONFIG_RTE_ARCH_ARMv7=y CONFIG_RTE_ARCH_ARM_TUNE="cortex-a9" +CONFIG_RTE_ARCH_ARM_NEON_MEMCPY=y CONFIG_RTE_FORCE_INTRINSICS=y CONFIG_RTE_ARCH_STRICT_ALIGN=y diff --git a/lib/librte_eal/common/include/arch/arm/rte_memcpy_32.h b/lib/librte_eal/common/include/arch/arm/rte_memcpy_32.h index ad8bc65..988125b 100644 --- a/lib/librte_eal/common/include/arch/arm/rte_memcpy_32.h +++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy_32.h @@ -42,7 +42,11 @@ extern "C" { #include "generic/rte_memcpy.h" -#ifdef RTE_MACHINE_CPUFLAG_NEON +#ifdef RTE_ARCH_ARM_NEON_MEMCPY + +#ifndef RTE_MACHINE_CPUFLAG_NEON +#error "Cannot optimize memcpy by NEON as the CPU seems to not support this" +#endif /* ARM NEON Intrinsics are used to copy data */ #include <arm_neon.h> @@ -325,7 +329,7 @@ rte_memcpy_func(void *dst, const void *src, size_t n) return memcpy(dst, src, n); } -#endif /* RTE_MACHINE_CPUFLAG_NEON */ +#endif /* RTE_ARCH_ARM_NEON_MEMCPY */ #ifdef __cplusplus } -- 2.7.0