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?