[dpdk-dev] [PATCH v11 6/9] net/virtio: add vectorized packed ring Rx path

Ferruh Yigit ferruh.yigit at intel.com
Thu Apr 30 15:04:05 CEST 2020


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.liu at intel.com>
>>> Reviewed-by: Maxime Coquelin <maxime.coquelin at 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')


More information about the dev mailing list