On Fri, May 21, 2021 at 10:07:07AM +0100, Bruce Richardson wrote:
> On Fri, May 21, 2021 at 09:55:37AM +0100, Liang Ma wrote:
> > On Fri, May 21, 2021 at 09:19:53AM +0100, Bruce Richardson wrote:
> > > On Fri, May 21, 2021 at 08:56:50AM +0100, Liang Ma wrote:
> > > > On Fri, May 21, 2021 at 09:04:06AM +0200, Thomas Monjalon wrote:
> > > > > 20/05/2021 23:22, Liang Ma:
> > > > > > Hi All,
> > > > > > I try to build DPDK with debug build-type but the building
> > > > > > process is
> > > > > > failed becuase of AVX512 code from librte-acl. The release build
> > > > > > type
> > > > > > is fine. Hence, I dig a bit into the avx512 enabling logic of
> > > > > > meson.
> > > > > >
> > > > > > I found the main logic is implemented inside
> > > > > > binutils-avx512-check.sh.
> > > > > >
> > > > > > It looks the script focus on checking the compatiblity of
> > > > > > tools-chain
> > > > > > instead of CPUID. My problem is current script will produce
> > > > > > avx512
> > > > > > code even I build dpdk on AMD platform. I understand the avx512
> > > > > > code
> > > > > > may not be used in runtime. I just wonder why we can not check
> > > > > > the
> > > > > > cpuid as well ?
> > > > >
> > > > > The same binary can be run on multiple CPUs,
> > > > > so it makes no sense to check the compilation CPUID in generic
> > > > > compilation.
> > > > > For native build, why not.
> > > > >
> > > > > Anyway, your problem is at compilation, not runtime, right?
> > > > Yes, the problem is at compilation.
> > > > Given X86_64, gcc-6.30, Debug build always failed due
> > > > to librte_acl AVX512 code. I hope there is a graceful switch allow
> > > > developer disable avx512 in certain circumstance.
> > >
> > > Add ACL maintainer on CC. Sounds like there is a problem with the AVX512
> > > support detection for acl library. Looking at the meson build code, other
> > > drivers, such as i40e, do their avx512 detection differently from ACL.
> > there are 2 concerns here:
> > 1. librte_acl specific issue cause the debug building failure with gcc 6.30.
> +1. This needs to be investigated and fixed if it's causing problems.
>
> > 2. More generic, if that's possible to have a graceful switch for
> > avx512.(e.g. build option)
> Not sure why this is wanted because any AVX512 paths won't be used at
> runtime unless suitable for use. In any case, this should be already doable
> by passing -mno-avx512 flag in CFLAGS/c_args at config time.
sure, that works, I use that method this moment. It's nice to have a
explicit way, because I use 30 mins to figure out that way. ;-)