[dpdk-stable] [dpdk-dev] [PATCH v4] mk: fix scope of disabling AVX512F support
Thomas Monjalon
thomas at monjalon.net
Mon Jan 14 12:55:42 CET 2019
Hi,
Few details reviewed below,
07/01/2019 17:49, Ferruh Yigit:
> --- a/doc/guides/rel_notes/known_issues.rst
> +++ b/doc/guides/rel_notes/known_issues.rst
> +AVX-512 support disabled
> +------------------------
> +
> +**Description**:
> + ``AVX-512`` support has been disabled on some conditions.
> + This shouldn't be confused with ``CONFIG_RTE_ENABLE_AVX512`` config option which is already
> + disabled by default. This config option defines if ``AVX-512`` specific implementations of
> + some file to be used or not. What has been disabled is compiler feature to produce ``AVX-512``
> + instructions from any source code.
> +
> + On DPDK v18.11 ``AVX-512`` disabled for all ``GCC`` builds which reported to cause a performance
> + drop.
*is* disabled
> +
> + On DPDK v19.02 ``AVX-512`` disable scope reduced to ``GCC`` and ``binutils version 2.30`` based
*is* reduced
> + on information accured from the GCC community defect.
> +
> +**Reason**:
> + Generated ``AVX-512`` code cause crash:
> + https://bugs.dpdk.org/show_bug.cgi?id=97
> + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88096
> +
> +**Resolution/Workaround**:
> + Update ``binutils`` to newer version than ``2.30``.
> + Use different compiler, like ``clang`` for this case.
These are 2 possible workarounds. Should we say "Or" ?
> +
> +**Affected Environment/Platform**:
> + ``GCC`` and ``binutils version 2.30``.
> --- a/doc/guides/rel_notes/release_19_02.rst
> +++ b/doc/guides/rel_notes/release_19_02.rst
> @@ -276,6 +276,19 @@ Known Issues
> Also, make sure to start the actual text at the margin.
> =========================================================
>
> +* ``AVX-512`` support has been disabled for ``GCC`` builds when ``binutils 2.30``
> + is detected [1] because of a crash [2]. This can affect ``native`` machine type
> + build targets on the platforms that support ``AVX512F`` like ``Intel Skylake``
> + processors, and can cause a possible performance drop. The immediate workaround
> + is to use ``clang`` compiler on these platforms.
> + Initial workaround in DPDK v18.11 was to disable ``AVX-512`` support for ``GCC``
> + completely, but based on information on defect submitted to GCC community [3],
> + issue has been identified as ``binutils 2.30`` issue. Since currently only GCC
> + generates ``AVX-512`` instructions, scope limited to ``GCC`` and ``binutils 2.30``
*the* scope *is* limited
> +
> + - [1]: Commit ("mk: fix scope of disabling AVX512F support")
> + - [2]: https://bugs.dpdk.org/show_bug.cgi?id=97
> + - [3]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88096
>
Space missing here
> Tested Platforms
> ----------------
> --- a/mk/toolchain/gcc/rte.toolchain-compat.mk
> +++ b/mk/toolchain/gcc/rte.toolchain-compat.mk
> +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))),)
Do we need lastword for CURDIR?
More information about the stable
mailing list