[dpdk-dev] Build failures in 21.11-rc2

Started by Lance Richardson on Nov 9, 2021 · 7 messages from 4 authors · Last reply Nov 9, 2021

open the first message on its own page

Message details and related content
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).

Perhaps code using _mm512_set_epi8() could be reworked to
avoid that intrinsic, or maybe support could be detected at build
configuration time and definitions for them could be provided in
DPDK headers.

Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html

BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.

    Lance

# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

In file included from ../lib/hash/rte_thash_gfni.h:16,
                 from ../lib/hash/rte_thash.h:27,
                 from ../lib/hash/rte_thash.c:7:
../lib/hash/rte_thash_x86_gfni.h: In function ‘__rte_thash_gfni’:
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
[-Werror=implicit-function-declaration]
  __m512i permute_idx = _mm512_set_epi8(7, 6, 5, 4, 7, 6, 5, 4,
                        ^~~~~~~~~~~~~~~
                        _mm512_set1_epi8
Message details and related content
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
Perhaps code using _mm512_set_epi8() could be reworked to
avoid that intrinsic, or maybe support could be detected at build
configuration time and definitions for them could be provided in
DPDK headers.

Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html

BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.

    Lance

# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

In file included from ../lib/hash/rte_thash_gfni.h:16,
                 from ../lib/hash/rte_thash.h:27,
                 from ../lib/hash/rte_thash.c:7:
../lib/hash/rte_thash_x86_gfni.h: In function ‘__rte_thash_gfni’:
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
[-Werror=implicit-function-declaration]
  __m512i permute_idx = _mm512_set_epi8(7, 6, 5, 4, 7, 6, 5, 4,
                        ^~~~~~~~~~~~~~~
                        _mm512_set1_epi8
Vladimir, can you reimplement this part without relying on _mm512_set_epi8?
Thanks.



-- 
David Marchand
Message details and related content
09/11/2021 16:57, David Marchand:
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
quoted
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
CI compilation was passing:
http://mails.dpdk.org/archives/test-report/2021-November/238534.html
I would like to better understand.

[...]
quoted
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html

BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.

    Lance

# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
[...]
quoted
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
What is different in your setup compared to the CI?

Message details and related content
Do the machines used for the CentOS 8 CI builds support AVX512?

The failing build is on an Ice Lake server with:
     meson -Dmachine=native build
     ninja -C build

On Tue, Nov 9, 2021 at 11:08 AM Thomas Monjalon [off-list ref] wrote:
09/11/2021 16:57, David Marchand:
quoted
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
quoted
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
CI compilation was passing:
http://mails.dpdk.org/archives/test-report/2021-November/238534.html
I would like to better understand.

[...]
quoted
quoted
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html

BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.

    Lance

# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
[...]
quoted
quoted
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
What is different in your setup compared to the CI?
Message details and related content
09/11/2021 17:12, Lance Richardson:
Do the machines used for the CentOS 8 CI builds support AVX512?
Probably not. OK thank you.
The failing build is on an Ice Lake server with:
     meson -Dmachine=native build
     ninja -C build

On Tue, Nov 9, 2021 at 11:08 AM Thomas Monjalon [off-list ref] wrote:
quoted
09/11/2021 16:57, David Marchand:
quoted
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
quoted
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
CI compilation was passing:
http://mails.dpdk.org/archives/test-report/2021-November/238534.html
I would like to better understand.

[...]
quoted
quoted
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html

BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.

    Lance

# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
[...]
quoted
quoted
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?
What is different in your setup compared to the CI?

Message details and related content
Based on the CI build logs, the target architecture was Skylake, which
supports AVX512 but doesn't support GFNI.

On Tue, Nov 9, 2021 at 11:15 AM Thomas Monjalon [off-list ref] wrote:
09/11/2021 17:12, Lance Richardson:
quoted
Do the machines used for the CentOS 8 CI builds support AVX512?
Probably not. OK thank you.
quoted
The failing build is on an Ice Lake server with:
     meson -Dmachine=native build
     ninja -C build

On Tue, Nov 9, 2021 at 11:08 AM Thomas Monjalon [off-list ref] wrote:
quoted
09/11/2021 16:57, David Marchand:
quoted
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
quoted
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
CI compilation was passing:
http://mails.dpdk.org/archives/test-report/2021-November/238534.html
I would like to better understand.

[...]
quoted
quoted
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html

BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.

    Lance

# gcc --version
gcc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)
[...]
quoted
quoted
../lib/hash/rte_thash_x86_gfni.h:59:24: error: implicit declaration of
function ‘_mm512_set_epi8’; did you mean ‘_mm512_set1_epi8’?

5 more quoted lines

Message details and related content
Hi all,

It looks like the problem caused by the lack of _mm512_set1_epi8() implementation inside the gcc8, however _mm512_set1_epi[16,32,64] has been implemented.
I replaced it with _mm512_set1_epi32 and on gcc8 it builds fine. I'll send a fix soon.

On 09/11/2021 17:22, Lance Richardson wrote:
Based on the CI build logs, the target architecture was Skylake, which
supports AVX512 but doesn't support GFNI.

On Tue, Nov 9, 2021 at 11:15 AM Thomas Monjalon [off-list ref] wrote:
quoted
09/11/2021 17:12, Lance Richardson:
quoted
Do the machines used for the CentOS 8 CI builds support AVX512?
Probably not. OK thank you.
quoted
The failing build is on an Ice Lake server with:
      meson -Dmachine=native build
      ninja -C build

On Tue, Nov 9, 2021 at 11:08 AM Thomas Monjalon [off-list ref] wrote:
quoted
09/11/2021 16:57, David Marchand:
quoted
On Tue, Nov 9, 2021 at 4:53 PM Lance Richardson
[off-list ref] wrote:
quoted
21.11-rc2 builds are failing on CentOS 8.4, apparently because
the intrinsic _mm512_set_epi8() is not defined in the GCC
headers (see example below).
Thanks for reporting Lance.
It rings a bell, think it was mentionned in the past.
CI compilation was passing:
http://mails.dpdk.org/archives/test-report/2021-November/238534.html
I would like to better understand.

[...]
quoted
quoted
Here is a GCC patch to add this intrinsic:
https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg188664.html

BTW, GCC 10.2.1 (via "scl enable gcc-toolset-10") is able to build
21.11-rc2 successfully on CentOS 8.4.

     Lance

# gcc --version

9 more quoted lines

-- 
Regards,
Vladimir
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help