From 716bf8208039d0a4279c99e8caa1ed028a63bbd2 Mon Sep 17 00:00:00 2001 From: Jerin Jacob Date: Wed, 2 Mar 2016 18:50:59 +0530 Subject: [PATCH] eal/arm: check support of armv8.1 atomics armv8.1 adds support for new atomic instructions. Linux kernel v4.3 onwards, the presence of atomic instruction support can detect through HWCAP_ATOMICS Signed-off-by: Jerin Jacob Reviewed-by: Jan Viktorin --- app/test/test_cpuflags.c | 3 +++ lib/librte_eal/common/arch/arm/rte_cpuflags.c | 1 + lib/librte_eal/common/include/arch/arm/rte_cpuflags_64.h | 1 + 3 files changed, 5 insertions(+) diff --git a/app/test/test_cpuflags.c b/app/test/test_cpuflags.c index e8d0ce7ee3..d083c869f6 100644 --- a/app/test/test_cpuflags.c +++ b/app/test/test_cpuflags.c @@ -144,6 +144,9 @@ test_cpuflags(void) printf("Check for CRC32:\t"); CHECK_FOR_FLAG(RTE_CPUFLAG_CRC32); + + printf("Check for ATOMICS:\t"); + CHECK_FOR_FLAG(RTE_CPUFLAG_ATOMICS); #endif #if defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_I686) diff --git a/lib/librte_eal/common/arch/arm/rte_cpuflags.c b/lib/librte_eal/common/arch/arm/rte_cpuflags.c index f14c56ae81..23240efd96 100644 --- a/lib/librte_eal/common/arch/arm/rte_cpuflags.c +++ b/lib/librte_eal/common/arch/arm/rte_cpuflags.c @@ -122,6 +122,7 @@ const struct feature_entry rte_cpu_feature_table[] = { FEAT_DEF(SHA1, REG_HWCAP, 5) FEAT_DEF(SHA2, REG_HWCAP, 6) FEAT_DEF(CRC32, REG_HWCAP, 7) + FEAT_DEF(ATOMICS, REG_HWCAP, 8) FEAT_DEF(AARCH64, REG_PLATFORM, 1) }; #endif /* RTE_ARCH */ diff --git a/lib/librte_eal/common/include/arch/arm/rte_cpuflags_64.h b/lib/librte_eal/common/include/arch/arm/rte_cpuflags_64.h index 810e8a018b..49aead92f8 100644 --- a/lib/librte_eal/common/include/arch/arm/rte_cpuflags_64.h +++ b/lib/librte_eal/common/include/arch/arm/rte_cpuflags_64.h @@ -49,6 +49,7 @@ enum rte_cpu_flag_t { RTE_CPUFLAG_SHA1, RTE_CPUFLAG_SHA2, RTE_CPUFLAG_CRC32, + RTE_CPUFLAG_ATOMICS, RTE_CPUFLAG_AARCH64, /* The last item */ RTE_CPUFLAG_NUMFLAGS,/**< This should always be the last! */ -- 2.20.1