dpdk/0338-hash-fix-GFNI-implementation-build-with-GCC-12.patch
jiangheng12 7b9cc4c5a2 fix build with GCC 12
(cherry picked from commit d1c19aae07fc1940cea32a797e9bc9b23377f317)
2023-07-12 19:51:01 +08:00

105 lines
5.3 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 47951ef1dc21882215a531472d055c58a7618cb0 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Mon, 9 Jan 2023 11:03:37 +0100
Subject: [PATCH] hash: fix GFNI implementation build with GCC 12
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit fe2c18a0a8b22703dec3add385a371ad819d7872 ]
On a system that has AVX512F and GFNI, compiling fails with:
In file included from /usr/lib/gcc/x86_64-redhat-linux/12/include/immintrin.h:71,
from /usr/lib/gcc/x86_64-redhat-linux/12/include/x86intrin.h:32,
from ../../../git/pub/dpdk.org/main/lib/eal/x86/include/rte_vect.h:31,
from ../../../git/pub/dpdk.org/main/lib/eal/x86/include/rte_memcpy.h:17,
from ../../../git/pub/dpdk.org/main/lib/mempool/rte_mempool.h:48,
from ../../../git/pub/dpdk.org/main/lib/mbuf/rte_mbuf.h:38,
from ../../../git/pub/dpdk.org/main/lib/net/rte_ip.h:33,
from ../../../git/pub/dpdk.org/main/lib/hash/rte_thash.h:25,
from ../../../git/pub/dpdk.org/main/lib/hash/rte_thash.c:7:
In function _mm512_mask_permutexvar_epi8,
inlined from __rte_thash_gfni at
../../../git/pub/dpdk.org/main/lib/hash/rte_thash_x86_gfni.h:142:17,
inlined from rte_thash_gfni at
../../../git/pub/dpdk.org/main/lib/hash/rte_thash_x86_gfni.h:182:20,
inlined from rte_thash_adjust_tuple at
../../../git/pub/dpdk.org/main/lib/hash/rte_thash.c:784:11:
/usr/lib/gcc/x86_64-redhat-linux/12/include/avx512vbmiintrin.h:97:20:
error: tuple_bytes may be used uninitialized [-Werror=maybe-uninitialized]
97 | return (__m512i) __builtin_ia32_permvarqi512_mask ((__v64qi) __B,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
98 | (__v64qi) __A,
| ~~~~~~~~~~~~~~
99 | (__v64qi) __W,
| ~~~~~~~~~~~~~~
100 | (__mmask64) __M);
| ~~~~~~~~~~~~~~~~
And:
In file included from ../../../git/pub/dpdk.org/main/lib/hash/rte_thash_gfni.h:17,
from ../../../git/pub/dpdk.org/main/lib/hash/rte_thash.h:27:
../../../git/pub/dpdk.org/main/lib/hash/rte_thash_x86_gfni.h:
In function rte_thash_adjust_tuple:
../../../git/pub/dpdk.org/main/lib/hash/rte_thash_x86_gfni.h:91:33:
note: tuple_bytes was declared here
91 | __m512i vals, matrixes, tuple_bytes, tuple_bytes_2;
| ^~~~~~~~~~~
In function _mm512_mask_permutexvar_epi8,
inlined from __rte_thash_gfni at
../../../git/pub/dpdk.org/main/lib/hash/rte_thash_x86_gfni.h:142:17,
inlined from rte_thash_gfni at
../../../git/pub/dpdk.org/main/lib/hash/rte_thash_x86_gfni.h:182:20,
inlined from rte_thash_adjust_tuple at
../../../git/pub/dpdk.org/main/lib/hash/rte_thash.c:784:11:
/usr/lib/gcc/x86_64-redhat-linux/12/include/avx512vbmiintrin.h:97:20:
error: permute_mask may be used uninitialized [-Werror=maybe-uninitialized]
97 | return (__m512i) __builtin_ia32_permvarqi512_mask ((__v64qi) __B,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
98 | (__v64qi) __A,
| ~~~~~~~~~~~~~~
99 | (__v64qi) __W,
| ~~~~~~~~~~~~~~
100 | (__mmask64) __M);
| ~~~~~~~~~~~~~~~~
../../../git/pub/dpdk.org/main/lib/hash/rte_thash_x86_gfni.h:
In function rte_thash_adjust_tuple:
../../../git/pub/dpdk.org/main/lib/hash/rte_thash_x86_gfni.h:92:30:
note: permute_mask was declared here
92 | __mmask64 load_mask, permute_mask, permute_mask_2;
| ^~~~~~~~~~~~
cc1: all warnings being treated as errors
Set those variables to 0.
Fixes: 4fd8c4cb0de1 ("hash: add new Toeplitz hash implementation")
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
lib/hash/rte_thash_x86_gfni.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/hash/rte_thash_x86_gfni.h b/lib/hash/rte_thash_x86_gfni.h
index 657b1862c3..0583f64793 100644
--- a/lib/hash/rte_thash_x86_gfni.h
+++ b/lib/hash/rte_thash_x86_gfni.h
@@ -87,8 +87,10 @@ __rte_thash_gfni(const uint64_t *mtrx, const uint8_t *tuple,
const __m512i shift_8 = _mm512_set1_epi8(8);
__m512i xor_acc = _mm512_setzero_si512();
__m512i perm_bytes = _mm512_setzero_si512();
- __m512i vals, matrixes, tuple_bytes, tuple_bytes_2;
- __mmask64 load_mask, permute_mask, permute_mask_2;
+ __m512i vals, matrixes, tuple_bytes_2;
+ __m512i tuple_bytes = _mm512_setzero_si512();
+ __mmask64 load_mask, permute_mask_2;
+ __mmask64 permute_mask = 0;
int chunk_len = 0, i = 0;
uint8_t mtrx_msk;
const int prepend = 3;
--
2.23.0