[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