DPDK patches and discussions
 help / color / mirror / Atom feed
From: Yongseok Koh <yskoh@mellanox.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>
Cc: Thomas Monjalon <thomas@monjalon.net>, dev <dev@dpdk.org>,
	dpdk stable <stable@dpdk.org>, Tom Barbette <barbette@kth.se>,
	Konstantin Ananyev <konstantin.ananyev@intel.com>,
	Bruce Richardson <bruce.richardson@intel.com>
Subject: Re: [dpdk-dev] [PATCH v3] mk: fix scope of disabling AVX512F support
Date: Thu, 3 Jan 2019 22:46:39 +0000	[thread overview]
Message-ID: <3DB9B601-F207-43B6-9237-F4630781FE78@mellanox.com> (raw)
In-Reply-To: <20190103162313.85623-1-ferruh.yigit@intel.com>


> On Jan 3, 2019, at 8:23 AM, Ferruh Yigit <ferruh.yigit@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%2Fbugs.dpdk.org%2Fshow_bug.cgi%3Fid%3D97&amp;data=02%7C01%7Cyskoh%40mellanox.com%7C9e8d0eb500ca4cb74c1508d67197c6b0%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636821294022213177&amp;sdata=Rxj7HxBWfp4hMzfRkiGtnSYt8N0TG9xnAL0ZYBpYYa0%3D&amp;reserved=0
> 
> [2]
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgcc.gnu.org%2Fbugzilla%2Fshow_bug.cgi%3Fid%3D88096&amp;data=02%7C01%7Cyskoh%40mellanox.com%7C9e8d0eb500ca4cb74c1508d67197c6b0%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636821294022213177&amp;sdata=EqzsamoYfFve5JAsgyWw51JOBhhiKTOCrnfZoYTGN28%3D&amp;reserved=0
> 
> Fixes: 8d07c82b239f ("mk: disable gcc AVX512F support")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
Acked-by: Yongseok Koh <yskoh@mellanox.com>
 
Thanks

> Cc: Tom Barbette <barbette@kth.se>
> Cc: Thomas Monjalon <thomas@monjalon.net>
> Cc: Yongseok Koh <yskoh@mellanox.com>
> Cc: Konstantin Ananyev <konstantin.ananyev@intel.com>
> Cc: Bruce Richardson <bruce.richardson@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
> 

  reply	other threads:[~2019-01-03 22:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-19 19:29 [dpdk-dev] [PATCH] " Ferruh Yigit
2018-12-19 19:58 ` Thomas Monjalon
2018-12-19 20:20   ` Ferruh Yigit
2018-12-19 20:28     ` Thomas Monjalon
2018-12-19 20:53       ` Ferruh Yigit
2018-12-20 11:29         ` Bruce Richardson
2018-12-19 21:00 ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
2018-12-22 23:02   ` Thomas Monjalon
2019-01-03 16:23   ` [dpdk-dev] [PATCH v3] " Ferruh Yigit
2019-01-03 22:46     ` Yongseok Koh [this message]
2019-01-04  2:40       ` Varghese, Vipin
2019-01-04 10:27         ` Ferruh Yigit
2019-01-04 10:28           ` Varghese, Vipin
2019-01-07 16:49     ` [dpdk-dev] [PATCH v4] " Ferruh Yigit
2019-01-08  3:50       ` Varghese, Vipin
2019-01-14 11:55       ` Thomas Monjalon
2019-01-14 15:49       ` [dpdk-dev] [PATCH v5] " Ferruh Yigit
2019-01-14 16:28         ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3DB9B601-F207-43B6-9237-F4630781FE78@mellanox.com \
    --to=yskoh@mellanox.com \
    --cc=barbette@kth.se \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=stable@dpdk.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).