On 4/30/2020 11:23 AM, Bruce Richardson wrote: > On Thu, Apr 30, 2020 at 10:48:35AM +0100, Ferruh Yigit wrote: >> On 4/28/2020 9:32 AM, Marvin Liu wrote: >>> Optimize packed ring Rx path with SIMD instructions. Solution of >>> optimization is pretty like vhost, is that split path into batch and >>> single functions. Batch function is further optimized by AVX512 >>> instructions. Also pad desc extra structure to 16 bytes aligned, thus >>> four elements will be saved in one batch. >>> >>> Signed-off-by: Marvin Liu <yong....@intel.com> >>> Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com> >> >> <...> >> >>> @@ -9,6 +9,20 @@ sources += files('virtio_ethdev.c', >>> deps += ['kvargs', 'bus_pci'] >>> >>> if arch_subdir == 'x86' >>> + if '-mno-avx512f' not in machine_args >>> + if cc.has_argument('-mavx512f') and >>> cc.has_argument('-mavx512vl') and cc.has_argument('-mavx512bw') >>> + cflags += ['-mavx512f', '-mavx512bw', '-mavx512vl'] >>> + cflags += ['-DCC_AVX512_SUPPORT'] >>> + if (toolchain == 'gcc' and >>> cc.version().version_compare('>=8.3.0')) >>> + cflags += '-DVHOST_GCC_UNROLL_PRAGMA' >>> + elif (toolchain == 'clang' and >>> cc.version().version_compare('>=3.7.0')) >>> + cflags += '-DVHOST_CLANG_UNROLL_PRAGMA' >>> + elif (toolchain == 'icc' and >>> cc.version().version_compare('>=16.0.0')) >>> + cflags += '-DVHOST_ICC_UNROLL_PRAGMA' >>> + endif >>> + sources += files('virtio_rxtx_packed_avx.c') >>> + endif >>> + endif >> >> This is giving following error in Travis build [1], it is seems this usage is >> supported since meson 0.49 [2] and Travis has 0.47 [3], also DPDK supports >> version 0.47.1+ [4]. >> >> Can you please check for meson v0.47 version way of doing same thing? >> >> > <arrayname>.contains() is probably what you want. >
Thanks Bruce, I will update in the next-net as following [1]. @Marvin can you please double check it on the next-net? [1] - if '-mno-avx512f' not in machine_args + if not machine_args.contains('-mno-avx512f')