[dpdk-dev] [PATCH v3] mk: fix scope of disabling AVX512F support

Varghese, Vipin vipin.varghese at intel.com
Fri Jan 4 03:40:36 CET 2019


Hi Ferruh,

Should not be there a documentation update in 'Known Issues and Limitations in Legacy Releases' for the limitation. If it is already added can you please add the patchwork link for the same.

Thanks
Vipin Varghese

> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Yongseok Koh
> Sent: Friday, January 4, 2019 4:17 AM
> To: Yigit, Ferruh <ferruh.yigit at intel.com>
> Cc: Thomas Monjalon <thomas at monjalon.net>; dev <dev at dpdk.org>; dpdk
> stable <stable at dpdk.org>; Tom Barbette <barbette at kth.se>; Ananyev,
> Konstantin <konstantin.ananyev at intel.com>; Richardson, Bruce
> <bruce.richardson at intel.com>
> Subject: Re: [dpdk-dev] [PATCH v3] mk: fix scope of disabling AVX512F support
> 
> 
> > On Jan 3, 2019, at 8:23 AM, Ferruh Yigit <ferruh.yigit at intel.com> wrote:
> >
> > AVX512 was disabled for GCC because of Bugzilla issue 97 [1], the GCC
> > defect submitted for the issue [2] highlighted that this is a known
> > binutils version 2.30 issue.
> >
> > Narrowed the scope of no-avx512 to the this specific binutils version.
> >
> > [1]
> > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbug
> >
> s.dpdk.org%2Fshow_bug.cgi%3Fid%3D97&data=02%7C01%7Cyskoh%40
> mellano
> >
> x.com%7C9e8d0eb500ca4cb74c1508d67197c6b0%7Ca652971c7d2e4d9ba6a4
> d149256
> >
> f461b%7C0%7C0%7C636821294022213177&sdata=Rxj7HxBWfp4hMzfRki
> GtnSYt8
> > N0TG9xnAL0ZYBpYYa0%3D&reserved=0
> >
> > [2]
> > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgcc
> >
> .gnu.org%2Fbugzilla%2Fshow_bug.cgi%3Fid%3D88096&data=02%7C01%
> 7Cysk
> >
> oh%40mellanox.com%7C9e8d0eb500ca4cb74c1508d67197c6b0%7Ca652971c
> 7d2e4d9
> >
> ba6a4d149256f461b%7C0%7C0%7C636821294022213177&sdata=Eqzsa
> moYfFve5
> > JAsgyWw51JOBhhiKTOCrnfZoYTGN28%3D&reserved=0
> >
> > Fixes: 8d07c82b239f ("mk: disable gcc AVX512F support")
> > Cc: stable at dpdk.org
> >
> > Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> > ---
> Acked-by: Yongseok Koh <yskoh at mellanox.com>
> 
> Thanks
> 
> > Cc: Tom Barbette <barbette at kth.se>
> > Cc: Thomas Monjalon <thomas at monjalon.net>
> > Cc: Yongseok Koh <yskoh at mellanox.com>
> > Cc: Konstantin Ananyev <konstantin.ananyev at intel.com>
> > Cc: Bruce Richardson <bruce.richardson at intel.com>
> >
> > v2:
> > * Added warning message (print only once for eal)
> > * Moved decision details to compat file, kept execution in cpuflags
> >
> > v3:
> > * replace 'ld' with '$(LD)' for cross build
> > * added meson support
> > ---
> > config/meson.build                       |  8 ++++++++
> > mk/rte.cpuflags.mk                       |  4 ++--
> > mk/toolchain/gcc/rte.toolchain-compat.mk | 10 ++++++++++
> > 3 files changed, 20 insertions(+), 2 deletions(-)
> >
> > diff --git a/config/meson.build b/config/meson.build index
> > db32499b3..40802fc88 100644
> > --- a/config/meson.build
> > +++ b/config/meson.build
> > @@ -43,6 +43,14 @@ toolchain = cc.get_id()
> > dpdk_conf.set_quoted('RTE_TOOLCHAIN', toolchain)
> > dpdk_conf.set('RTE_TOOLCHAIN_' + toolchain.to_upper(), 1)
> >
> > +# get binutils version for the workaround of Bug 97 ldver =
> > +run_command('ld', '-v').stdout().strip() if ldver.contains('2.30')
> > +	if cc.has_argument('-mno-avx512f')
> > +		machine_args += '-mno-avx512f'
> > +	endif
> > +endif
> > +
> > add_project_link_arguments('-Wl,--no-as-needed', language: 'c')
> > dpdk_extra_ldflags += '-Wl,--no-as-needed'
> >
> > diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk index
> > c3291b17a..541211c61 100644
> > --- a/mk/rte.cpuflags.mk
> > +++ b/mk/rte.cpuflags.mk
> > @@ -69,8 +69,8 @@ ifneq ($(filter $(AUTO_CPUFLAGS),__AVX512F__),) ifeq
> > ($(CONFIG_RTE_ENABLE_AVX512),y) CPUFLAGS += AVX512F else -# disable
> > AVX512F support of gcc as a workaround for Bug 97 -ifeq
> > ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
> > +# disable AVX512F support for GCC & binutils 2.30 as a workaround for
> > +Bug 97 ifeq ($(FORCE_DISABLE_AVX512),y)
> > MACHINE_CFLAGS += -mno-avx512f
> > endif
> > endif
> > diff --git a/mk/toolchain/gcc/rte.toolchain-compat.mk
> > b/mk/toolchain/gcc/rte.toolchain-compat.mk
> > index 44904295c..33ea3f03a 100644
> > --- a/mk/toolchain/gcc/rte.toolchain-compat.mk
> > +++ b/mk/toolchain/gcc/rte.toolchain-compat.mk
> > @@ -20,6 +20,16 @@ HOST_GCC_MINOR = $(shell echo __GNUC_MINOR__
> |
> > $(HOSTCC) -E -x c - | tail -n 1) HOST_GCC_PATCHLEVEL = $(shell echo
> > __GNUC_PATCHLEVEL__ | $(HOSTCC) -E -x c - | tail -n 1)
> > HOST_GCC_VERSION = $(HOST_GCC_MAJOR)$(HOST_GCC_MINOR)
> >
> > +LD_VERSION = $(shell $(LD) -v)
> > +# disable AVX512F support for GCC & binutils 2.30 as a workaround for
> > +Bug 97 ifneq ($(filter 2.30%,$(LD_VERSION)),)
> > +FORCE_DISABLE_AVX512 := y
> > +# print warning only once for librte_eal ifneq ($(filter
> > +%librte_eal,$(lastword $(CURDIR))),) $(warning AVX512 support
> > +disabled because of ld 2.30. See Bug 97) endif endif
> > +
> > # if GCC is older than 4.x
> > ifeq ($(shell test $(GCC_VERSION) -lt 40 && echo 1), 1)
> > 	MACHINE_CFLAGS =
> > --
> > 2.17.2
> >



More information about the dev mailing list