All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Ferruh Yigit <ferruh.yigit@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>
Cc: dev@dpdk.org, stable@dpdk.org, Tom Barbette <barbette@kth.se>,
	Yongseok Koh <yskoh@mellanox.com>,
	Konstantin Ananyev <konstantin.ananyev@intel.com>,
	Bruce Richardson <bruce.richardson@intel.com>
Subject: [PATCH v2] mk: fix scope of disabling AVX512F support
Date: Wed, 19 Dec 2018 21:00:27 +0000	[thread overview]
Message-ID: <20181219210028.60219-1-ferruh.yigit@intel.com> (raw)
In-Reply-To: <20181219192904.61934-1-ferruh.yigit@intel.com>

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://bugs.dpdk.org/show_bug.cgi?id=97

[2]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88096

Fixes: 8d07c82b239f ("mk: disable gcc AVX512F support")
Cc: stable@dpdk.org

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
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>
    We need similar check for meson which is missing right now.

v2:
* Added warning message (print only once for eal)
* Moved decision details to compat file, kept execution in cpuflags
---
 mk/rte.cpuflags.mk                       |  4 ++--
 mk/toolchain/gcc/rte.toolchain-compat.mk | 10 ++++++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

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..fc93bfc22 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

  parent reply	other threads:[~2018-12-19 21:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-19 19:29 [PATCH] mk: fix scope of disabling AVX512F support 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 ` Ferruh Yigit [this message]
2018-12-22 23:02   ` [PATCH v2] " Thomas Monjalon
2019-01-03 16:23   ` [PATCH v3] " Ferruh Yigit
2019-01-03 22:46     ` Yongseok Koh
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     ` [PATCH v4] " Ferruh Yigit
2019-01-08  3:50       ` Varghese, Vipin
2019-01-14 11:55       ` Thomas Monjalon
2019-01-14 15:49       ` [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=20181219210028.60219-1-ferruh.yigit@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=barbette@kth.se \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=konstantin.ananyev@intel.com \
    --cc=stable@dpdk.org \
    --cc=thomas@monjalon.net \
    --cc=yskoh@mellanox.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.