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? [1] drivers/net/virtio/meson.build:12:19: ERROR: Expecting eol got not. if '-mno-avx512f' not in machine_args ^ [2] https://mesonbuild.com/Syntax.html#dictionaries Since 0.49.0, you can check if a dictionary contains a key like this: if 'foo' not in my_dict # This condition is false endif [3] The Meson build system Version: 0.47.1 [4] doc/guides/linux_gsg/sys_reqs.rst * Meson (version 0.47.1+) and ninja