dpdk: enable AVX-512 on ICL 09/31509/1
authorRay Kinsella <mdr@ashroe.eu>
Thu, 14 Jan 2021 16:37:37 +0000 (16:37 +0000)
committerRadu Nicolau <radu.nicolau@intel.com>
Thu, 4 Mar 2021 14:19:47 +0000 (14:19 +0000)
Enable DPDK AVX-512 Vector PMDs on Intel Icelake

Type: improvement

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Change-Id: Ie5d5bf54ccaa65c1d053d56a2f2973fe8625193b
(cherry picked from commit 1cebf98e1cdc99e215d30dadd5570ba836b1a6d9)

src/plugins/dpdk/device/init.c

index 19898b1..33d5df6 100644 (file)
@@ -29,6 +29,7 @@
 #include <vlib/vmbus/vmbus.h>
 
 #include <rte_ring.h>
+#include <rte_vect.h>
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -1527,6 +1528,10 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input)
   ret = rte_eal_init (vec_len (conf->eal_init_args),
                      (char **) conf->eal_init_args);
 
+  /* enable the AVX-512 vPMDs in DPDK */
+  if (clib_cpu_supports_avx512_bitalg ())
+    rte_vect_set_max_simd_bitwidth (RTE_VECT_SIMD_512);
+
   /* lazy umount hugepages */
   umount2 ((char *) huge_dir_path, MNT_DETACH);
   rmdir ((char *) huge_dir_path);