> -----Original Message----- > From: Bruce Richardson <bruce.richard...@intel.com> > Sent: Tuesday, October 27, 2020 9:28 PM > To: Ali Alnubani <alia...@nvidia.com> > Cc: Yigit, Ferruh <ferruh.yi...@intel.com>; Rong, Leyi <leyi.r...@intel.com>; > Zhang, Qi Z <qi.z.zh...@intel.com>; Lu, Wenzhuo <wenzhuo...@intel.com>; > Andrew Rybchenko <arybche...@solarflare.com>; David Marchand > <david.march...@redhat.com>; Raslan Darawsheh <rasl...@nvidia.com>; > dev@dpdk.org > Subject: Re: [PATCH] net/ice: add AVX512BW flag check both in build and > runtime > > On Tue, Oct 27, 2020 at 01:12:20PM +0000, Ali Alnubani wrote: > > Hi, > > > > > -----Original Message----- > > > From: Ferruh Yigit <ferruh.yi...@intel.com> > > > Sent: Tuesday, October 27, 2020 1:57 PM > > > To: Leyi Rong <leyi.r...@intel.com>; qi.z.zh...@intel.com; > > > bruce.richard...@intel.com; wenzhuo...@intel.com; Ali Alnubani > > > <alia...@nvidia.com>; Andrew Rybchenko > <arybche...@solarflare.com>; > > > David Marchand <david.march...@redhat.com> > > > Cc: dev@dpdk.org > > > Subject: Re: [PATCH] net/ice: add AVX512BW flag check both in build > > > and runtime > > > > > > On 10/27/2020 10:19 AM, Leyi Rong wrote: > > > > Intrinsic function __mm512_bsrli_epi128 should be used in the > > > > environment which supports AVX512BW, so adds check for this flag. > > > > > > > > Fixes: 5dd3b8f3af34 ("net/ice: add AVX512 vector path") > > > > > > > > Signed-off-by: Leyi Rong <leyi.r...@intel.com> > > > > > > Squashed into relevant commit in next-net, thanks. > > > > > > > > > Andrew, Ali, David, > > > > > > Can you please confirm the issue is solved in the next-net/main? > > > > > > > The build failures in CentOS 7, Ubuntu 18.04 and in OpenSUSE Leap 15.2 no > longer reproduce. But we just noticed that Ubuntu 16.04.7 (gcc 5.4.0) is also > failing with a different error: > > > > """ > > drivers/net/ice/ice_rxtx_vec_avx512.c:1:0: error: bad value > > (skylake-avx512) for -march= switch > > /* SPDX-License-Identifier: BSD-3-Clause """ > > Which is also caused by "net/ice: add AVX512 vector path". > > > > I think we can drop the -march=skylake-avx512 flag in the build command for > the avx512 file, since specifying the -mavx512f and -mavx512bw should be > enough. Testing in an ubuntu 16.04 VM (which has 5.5 rather than 5.4 > compiler, but should be ok), shows that the avx512 instruction set flags are > recognised and enable the isntructions, which the -march one is not. > > /Bruce > > bruce@ubuntu-1604-vm:~$ gcc -mavx512f -mavx512bw -dM -E - < /dev/null > | grep AVX #define __AVX512F__ 1 #define __AVX512BW__ 1 #define > __AVX__ 1 #define __AVX2__ 1 bruce@ubuntu-1604-vm:~$ gcc - > march=skylake-avx512 -dM -E - < /dev/null | grep AVX > cc1: error: bad value (skylake-avx512) for -march= switch
Hi Bruce, Drop -march=skylake-avx512 really impact the throughput performance in my test, although -avx512f and -avx512bw are set meanwhile. Could we add a judgement before setting -march=skylake-avx512, the judgement can just like if (toolchain == 'gcc' and cc.version().version_compare('>=7.0.0')) Leyi