summaryrefslogtreecommitdiff
path: root/lib/dpdk.c
diff options
context:
space:
mode:
authorHarry van Haaren <harry.van.haaren@intel.com>2021-07-09 15:58:24 +0000
committerIan Stokes <ian.stokes@intel.com>2021-07-09 17:15:08 +0100
commit1e314891340d9b964f2da975936974b09912c225 (patch)
tree7f39769f0bf9bef23985b4b27ef42d7285f83f89 /lib/dpdk.c
parent60c9e1a2f3432e785de3e86a05bf5f7c5c4b1aa8 (diff)
downloadopenvswitch-1e314891340d9b964f2da975936974b09912c225.tar.gz
dpcls-avx512: Enable avx512 vector popcount instruction.
This commit enables the AVX512-VPOPCNTDQ Vector Popcount instruction. This instruction is not available on every CPU that supports the AVX512-F Foundation ISA, hence it is enabled only when the additional VPOPCNTDQ ISA check is passed. The vector popcount instruction is used instead of the AVX512 popcount emulation code present in the avx512 optimized DPCLS today. It provides higher performance in the SIMD miniflow processing as that requires the popcount to calculate the miniflow block indexes. Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Flavio Leitner <fbl@sysclose.org> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Diffstat (limited to 'lib/dpdk.c')
-rw-r--r--lib/dpdk.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/dpdk.c b/lib/dpdk.c
index 8807de54a..9de2af58e 100644
--- a/lib/dpdk.c
+++ b/lib/dpdk.c
@@ -706,6 +706,7 @@ dpdk_get_cpu_has_isa(const char *arch, const char *feature)
#if __x86_64__
/* CPU flags only defined for the architecture that support it. */
CHECK_CPU_FEATURE(feature, "avx512f", RTE_CPUFLAG_AVX512F);
+ CHECK_CPU_FEATURE(feature, "avx512vpopcntdq", RTE_CPUFLAG_AVX512VPOPCNTDQ);
CHECK_CPU_FEATURE(feature, "bmi2", RTE_CPUFLAG_BMI2);
#endif