[PATCH v2] net: not build PMD AVX library when no IOVA as PA

Qi Zhang qi.z.zhang at intel.com
Mon Dec 12 15:52:01 CET 2022


PMD not announce pmd_supports_disable_iova_as_pa will not be build
when RTE_IOVA_AS_PA is not defined, but some AVX library for vector
path is not skipped by the build system which cause compile error.

The patch modify i40e, iavf, ice's meson file to skip AVX library
build when RTE_IOVA_AS_PA is not defined.

Cc: stable at dpdk.org

Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
---
 drivers/net/i40e/meson.build | 5 +++--
 drivers/net/iavf/meson.build | 5 +++--
 drivers/net/ice/meson.build  | 5 +++--
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index e00c1a9ef9..ac8a4bd3f8 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -37,6 +37,7 @@ testpmd_sources = files('i40e_testpmd.c')
 
 deps += ['hash']
 includes += include_directories('base')
+iova_as_pa = dpdk_conf.get('RTE_IOVA_AS_PA')
 
 if arch_subdir == 'x86'
     sources += files('i40e_rxtx_vec_sse.c')
@@ -51,7 +52,7 @@ if arch_subdir == 'x86'
     if cc.get_define('__AVX2__', args: machine_args) != ''
         cflags += ['-DCC_AVX2_SUPPORT']
         sources += files('i40e_rxtx_vec_avx2.c')
-    elif cc.has_argument('-mavx2')
+    elif iova_as_pa == 1 and cc.has_argument('-mavx2')
         cflags += ['-DCC_AVX2_SUPPORT']
         i40e_avx2_lib = static_library('i40e_avx2_lib',
                 'i40e_rxtx_vec_avx2.c',
@@ -71,7 +72,7 @@ if arch_subdir == 'x86'
         cc.has_argument('-mavx512f') and
         cc.has_argument('-mavx512bw'))
 
-    if i40e_avx512_cpu_support == true or i40e_avx512_cc_support == true
+    if iova_as_pa == 1 and (i40e_avx512_cpu_support == true or i40e_avx512_cc_support == true)
         cflags += ['-DCC_AVX512_SUPPORT']
         avx512_args = [cflags, '-mavx512f', '-mavx512bw']
         if cc.has_argument('-march=skylake-avx512')
diff --git a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build
index 6df771f917..37968200c1 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -6,6 +6,7 @@ cflags += ['-Wno-strict-aliasing']
 
 includes += include_directories('../../common/iavf')
 deps += ['common_iavf', 'security', 'cryptodev']
+iova_as_pa = dpdk_conf.get('RTE_IOVA_AS_PA')
 
 sources = files(
         'iavf_ethdev.c',
@@ -32,7 +33,7 @@ if arch_subdir == 'x86'
     if cc.get_define('__AVX2__', args: machine_args) != ''
         cflags += ['-DCC_AVX2_SUPPORT']
         sources += files('iavf_rxtx_vec_avx2.c')
-    elif cc.has_argument('-mavx2')
+    elif iova_as_pa == 1 and cc.has_argument('-mavx2')
         cflags += ['-DCC_AVX2_SUPPORT']
         iavf_avx2_lib = static_library('iavf_avx2_lib',
                 'iavf_rxtx_vec_avx2.c',
@@ -52,7 +53,7 @@ if arch_subdir == 'x86'
         cc.has_argument('-mavx512f') and
         cc.has_argument('-mavx512bw'))
 
-    if iavf_avx512_cpu_support == true or iavf_avx512_cc_support == true
+    if iova_as_pa == 1 and (iavf_avx512_cpu_support == true or iavf_avx512_cc_support == true)
         cflags += ['-DCC_AVX512_SUPPORT']
         avx512_args = [cflags, '-mavx512f', '-mavx512bw']
         if cc.has_argument('-march=skylake-avx512')
diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
index 528e77613e..8efa533e0b 100644
--- a/drivers/net/ice/meson.build
+++ b/drivers/net/ice/meson.build
@@ -20,6 +20,7 @@ testpmd_sources = files('ice_testpmd.c')
 
 deps += ['hash', 'net', 'common_iavf']
 includes += include_directories('base', '../../common/iavf')
+iova_as_pa = dpdk_conf.get('RTE_IOVA_AS_PA')
 
 if arch_subdir == 'x86'
     sources += files('ice_rxtx_vec_sse.c')
@@ -34,7 +35,7 @@ if arch_subdir == 'x86'
     if cc.get_define('__AVX2__', args: machine_args) != ''
         cflags += ['-DCC_AVX2_SUPPORT']
         sources += files('ice_rxtx_vec_avx2.c')
-    elif cc.has_argument('-mavx2')
+    elif iova_as_pa == 1 and cc.has_argument('-mavx2')
         cflags += ['-DCC_AVX2_SUPPORT']
         ice_avx2_lib = static_library('ice_avx2_lib',
                 'ice_rxtx_vec_avx2.c',
@@ -55,7 +56,7 @@ if arch_subdir == 'x86'
                 cc.has_argument('-mavx512bw')
     )
 
-    if ice_avx512_cpu_support == true or ice_avx512_cc_support == true
+    if iova_as_pa == 1 and (ice_avx512_cpu_support == true or ice_avx512_cc_support == true)
         cflags += ['-DCC_AVX512_SUPPORT']
         avx512_args = [cflags, '-mavx512f', '-mavx512bw']
         if cc.has_argument('-march=skylake-avx512')
-- 
2.31.1



More information about the stable mailing list