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.
/Bruce