DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Yipeng Wang <yipeng1.wang@intel.com>,
	Sameh Gobriel <sameh.gobriel@intel.com>,
	Bruce Richardson <bruce.richardson@intel.com>,
	Vladimir Medvedkin <vladimir.medvedkin@intel.com>,
	Ruifeng Wang <ruifeng.wang@arm.com>
Subject: [PATCH v10 21/22] hash: move rte_hash_set_alg out header
Date: Wed, 22 Feb 2023 08:08:01 -0800	[thread overview]
Message-ID: <20230222160802.123611-22-stephen@networkplumber.org> (raw)
In-Reply-To: <20230222160802.123611-1-stephen@networkplumber.org>

The code for setting algorithm for hash is not at all perf sensitive,
and doing it inline has a couple of problems. First, it means that if
multiple files include the header, then the initialization gets done
multiple times. But also, it makes it harder to fix usage of RTE_LOG().

Despite what the checking script say. This is not an ABI change, the
previous version inlined the same code; therefore both old and new code
will work the same.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/hash/meson.build     |  1 +
 lib/hash/rte_crc_arm64.h |  8 ++---
 lib/hash/rte_crc_x86.h   | 10 +++---
 lib/hash/rte_hash_crc.c  | 68 ++++++++++++++++++++++++++++++++++++++++
 lib/hash/rte_hash_crc.h  | 48 ++--------------------------
 lib/hash/version.map     |  7 +++++
 6 files changed, 88 insertions(+), 54 deletions(-)
 create mode 100644 lib/hash/rte_hash_crc.c

diff --git a/lib/hash/meson.build b/lib/hash/meson.build
index e56ee8572564..c345c6f561fc 100644
--- a/lib/hash/meson.build
+++ b/lib/hash/meson.build
@@ -19,6 +19,7 @@ indirect_headers += files(
 
 sources = files(
     'rte_cuckoo_hash.c',
+    'rte_hash_crc.c',
     'rte_fbk_hash.c',
     'rte_thash.c',
     'rte_thash_gfni.c'
diff --git a/lib/hash/rte_crc_arm64.h b/lib/hash/rte_crc_arm64.h
index c9f52510871b..414fe065caa8 100644
--- a/lib/hash/rte_crc_arm64.h
+++ b/lib/hash/rte_crc_arm64.h
@@ -53,7 +53,7 @@ crc32c_arm64_u64(uint64_t data, uint32_t init_val)
 static inline uint32_t
 rte_hash_crc_1byte(uint8_t data, uint32_t init_val)
 {
-	if (likely(crc32_alg & CRC32_ARM64))
+	if (likely(rte_hash_crc32_alg & CRC32_ARM64))
 		return crc32c_arm64_u8(data, init_val);
 
 	return crc32c_1byte(data, init_val);
@@ -67,7 +67,7 @@ rte_hash_crc_1byte(uint8_t data, uint32_t init_val)
 static inline uint32_t
 rte_hash_crc_2byte(uint16_t data, uint32_t init_val)
 {
-	if (likely(crc32_alg & CRC32_ARM64))
+	if (likely(rte_hash_crc32_alg & CRC32_ARM64))
 		return crc32c_arm64_u16(data, init_val);
 
 	return crc32c_2bytes(data, init_val);
@@ -81,7 +81,7 @@ rte_hash_crc_2byte(uint16_t data, uint32_t init_val)
 static inline uint32_t
 rte_hash_crc_4byte(uint32_t data, uint32_t init_val)
 {
-	if (likely(crc32_alg & CRC32_ARM64))
+	if (likely(rte_hash_crc32_alg & CRC32_ARM64))
 		return crc32c_arm64_u32(data, init_val);
 
 	return crc32c_1word(data, init_val);
@@ -95,7 +95,7 @@ rte_hash_crc_4byte(uint32_t data, uint32_t init_val)
 static inline uint32_t
 rte_hash_crc_8byte(uint64_t data, uint32_t init_val)
 {
-	if (likely(crc32_alg & CRC32_ARM64))
+	if (likely(rte_hash_crc32_alg & CRC32_ARM64))
 		return crc32c_arm64_u64(data, init_val);
 
 	return crc32c_2words(data, init_val);
diff --git a/lib/hash/rte_crc_x86.h b/lib/hash/rte_crc_x86.h
index 205bc182be77..3b865e251db2 100644
--- a/lib/hash/rte_crc_x86.h
+++ b/lib/hash/rte_crc_x86.h
@@ -67,7 +67,7 @@ crc32c_sse42_u64(uint64_t data, uint64_t init_val)
 static inline uint32_t
 rte_hash_crc_1byte(uint8_t data, uint32_t init_val)
 {
-	if (likely(crc32_alg & CRC32_SSE42))
+	if (likely(rte_hash_crc32_alg & CRC32_SSE42))
 		return crc32c_sse42_u8(data, init_val);
 
 	return crc32c_1byte(data, init_val);
@@ -81,7 +81,7 @@ rte_hash_crc_1byte(uint8_t data, uint32_t init_val)
 static inline uint32_t
 rte_hash_crc_2byte(uint16_t data, uint32_t init_val)
 {
-	if (likely(crc32_alg & CRC32_SSE42))
+	if (likely(rte_hash_crc32_alg & CRC32_SSE42))
 		return crc32c_sse42_u16(data, init_val);
 
 	return crc32c_2bytes(data, init_val);
@@ -95,7 +95,7 @@ rte_hash_crc_2byte(uint16_t data, uint32_t init_val)
 static inline uint32_t
 rte_hash_crc_4byte(uint32_t data, uint32_t init_val)
 {
-	if (likely(crc32_alg & CRC32_SSE42))
+	if (likely(rte_hash_crc32_alg & CRC32_SSE42))
 		return crc32c_sse42_u32(data, init_val);
 
 	return crc32c_1word(data, init_val);
@@ -110,11 +110,11 @@ static inline uint32_t
 rte_hash_crc_8byte(uint64_t data, uint32_t init_val)
 {
 #ifdef RTE_ARCH_X86_64
-	if (likely(crc32_alg == CRC32_SSE42_x64))
+	if (likely(rte_hash_crc32_alg == CRC32_SSE42_x64))
 		return crc32c_sse42_u64(data, init_val);
 #endif
 
-	if (likely(crc32_alg & CRC32_SSE42))
+	if (likely(rte_hash_crc32_alg & CRC32_SSE42))
 		return crc32c_sse42_u64_mimic(data, init_val);
 
 	return crc32c_2words(data, init_val);
diff --git a/lib/hash/rte_hash_crc.c b/lib/hash/rte_hash_crc.c
new file mode 100644
index 000000000000..1439d8a71f6a
--- /dev/null
+++ b/lib/hash/rte_hash_crc.c
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2014 Intel Corporation
+ */
+
+#include <rte_cpuflags.h>
+#include <rte_log.h>
+
+#include "rte_hash_crc.h"
+
+RTE_LOG_REGISTER_SUFFIX(hash_crc_logtype, crc, INFO);
+#define RTE_LOGTYPE_HASH_CRC hash_crc_logtype
+
+uint8_t rte_hash_crc32_alg = CRC32_SW;
+
+/**
+ * Allow or disallow use of SSE4.2/ARMv8 intrinsics for CRC32 hash
+ * calculation.
+ *
+ * @param alg
+ *   An OR of following flags:
+ *   - (CRC32_SW) Don't use SSE4.2/ARMv8 intrinsics (default non-[x86/ARMv8])
+ *   - (CRC32_SSE42) Use SSE4.2 intrinsics if available
+ *   - (CRC32_SSE42_x64) Use 64-bit SSE4.2 intrinsic if available (default x86)
+ *   - (CRC32_ARM64) Use ARMv8 CRC intrinsic if available (default ARMv8)
+ *
+ */
+void
+rte_hash_crc_set_alg(uint8_t alg)
+{
+	rte_hash_crc32_alg = CRC32_SW;
+
+	if (alg == CRC32_SW)
+		return;
+
+#if defined RTE_ARCH_X86
+	if (!(alg & CRC32_SSE42_x64))
+		RTE_LOG(WARNING, HASH_CRC,
+			"Unsupported CRC32 algorithm requested using CRC32_x64/CRC32_SSE42\n");
+	if (!rte_cpu_get_flag_enabled(RTE_CPUFLAG_EM64T) || alg == CRC32_SSE42)
+		rte_hash_crc32_alg = CRC32_SSE42;
+	else
+		rte_hash_crc32_alg = CRC32_SSE42_x64;
+#endif
+
+#if defined RTE_ARCH_ARM64
+	if (!(alg & CRC32_ARM64))
+		RTE_LOG(WARNING, HASH_CRC,
+			"Unsupported CRC32 algorithm requested using CRC32_ARM64\n");
+	if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_CRC32))
+		rte_hash_crc32_alg = CRC32_ARM64;
+#endif
+
+	if (rte_hash_crc32_alg == CRC32_SW)
+		RTE_LOG(WARNING, HASH_CRC,
+			"Unsupported CRC32 algorithm requested using CRC32_SW\n");
+}
+
+/* Setting the best available algorithm */
+RTE_INIT(rte_hash_crc_init_alg)
+{
+#if defined(RTE_ARCH_X86)
+	rte_hash_crc_set_alg(CRC32_SSE42_x64);
+#elif defined(RTE_ARCH_ARM64) && defined(__ARM_FEATURE_CRC32)
+	rte_hash_crc_set_alg(CRC32_ARM64);
+#else
+	rte_hash_crc_set_alg(CRC32_SW);
+#endif
+}
diff --git a/lib/hash/rte_hash_crc.h b/lib/hash/rte_hash_crc.h
index 0249ad16c5b6..e8145ee44204 100644
--- a/lib/hash/rte_hash_crc.h
+++ b/lib/hash/rte_hash_crc.h
@@ -20,8 +20,6 @@ extern "C" {
 #include <rte_branch_prediction.h>
 #include <rte_common.h>
 #include <rte_config.h>
-#include <rte_cpuflags.h>
-#include <rte_log.h>
 
 #include "rte_crc_sw.h"
 
@@ -31,7 +29,7 @@ extern "C" {
 #define CRC32_SSE42_x64     (CRC32_x64|CRC32_SSE42)
 #define CRC32_ARM64         (1U << 3)
 
-static uint8_t crc32_alg = CRC32_SW;
+extern uint8_t rte_hash_crc32_alg;
 
 #if defined(RTE_ARCH_ARM64) && defined(__ARM_FEATURE_CRC32)
 #include "rte_crc_arm64.h"
@@ -53,48 +51,8 @@ static uint8_t crc32_alg = CRC32_SW;
  *   - (CRC32_ARM64) Use ARMv8 CRC intrinsic if available (default ARMv8)
  *
  */
-static inline void
-rte_hash_crc_set_alg(uint8_t alg)
-{
-	crc32_alg = CRC32_SW;
-
-	if (alg == CRC32_SW)
-		return;
-
-#if defined RTE_ARCH_X86
-	if (!(alg & CRC32_SSE42_x64))
-		RTE_LOG(WARNING, HASH,
-			"Unsupported CRC32 algorithm requested using CRC32_x64/CRC32_SSE42\n");
-	if (!rte_cpu_get_flag_enabled(RTE_CPUFLAG_EM64T) || alg == CRC32_SSE42)
-		crc32_alg = CRC32_SSE42;
-	else
-		crc32_alg = CRC32_SSE42_x64;
-#endif
-
-#if defined RTE_ARCH_ARM64
-	if (!(alg & CRC32_ARM64))
-		RTE_LOG(WARNING, HASH,
-			"Unsupported CRC32 algorithm requested using CRC32_ARM64\n");
-	if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_CRC32))
-		crc32_alg = CRC32_ARM64;
-#endif
-
-	if (crc32_alg == CRC32_SW)
-		RTE_LOG(WARNING, HASH,
-			"Unsupported CRC32 algorithm requested using CRC32_SW\n");
-}
-
-/* Setting the best available algorithm */
-RTE_INIT(rte_hash_crc_init_alg)
-{
-#if defined(RTE_ARCH_X86)
-	rte_hash_crc_set_alg(CRC32_SSE42_x64);
-#elif defined(RTE_ARCH_ARM64) && defined(__ARM_FEATURE_CRC32)
-	rte_hash_crc_set_alg(CRC32_ARM64);
-#else
-	rte_hash_crc_set_alg(CRC32_SW);
-#endif
-}
+void
+rte_hash_crc_set_alg(uint8_t alg);
 
 #ifdef __DOXYGEN__
 
diff --git a/lib/hash/version.map b/lib/hash/version.map
index f03b047b2eec..8b22aad5626b 100644
--- a/lib/hash/version.map
+++ b/lib/hash/version.map
@@ -9,6 +9,7 @@ DPDK_23 {
 	rte_hash_add_key_with_hash;
 	rte_hash_add_key_with_hash_data;
 	rte_hash_count;
+	rte_hash_crc_set_alg;
 	rte_hash_create;
 	rte_hash_del_key;
 	rte_hash_del_key_with_hash;
@@ -56,3 +57,9 @@ EXPERIMENTAL {
 	rte_thash_gfni;
 	rte_thash_gfni_bulk;
 };
+
+INTERNAL {
+	global:
+
+	rte_hash_crc32_alg;
+};
-- 
2.39.1


  parent reply	other threads:[~2023-02-22 16:11 UTC|newest]

Thread overview: 255+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-07 20:41 [RFC 00/13] Replace static logtypes with static Stephen Hemminger
2023-02-07 20:41 ` [RFC 01/13] doc: document intention to deprecate RTE_LOGTYPE_USER* Stephen Hemminger
2023-02-07 20:41 ` [RFC 02/13] gso: remove logtype Stephen Hemminger
2023-02-07 20:41 ` [RFC 03/13] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-07 20:41 ` [RFC 04/13] efd: replace RTE_LOGTYPE_EFD with local type Stephen Hemminger
2023-02-07 20:41 ` [RFC 05/13] mbuf: replace RTE_LOGTYPE_MBUF with dynamic type Stephen Hemminger
2023-02-07 20:41 ` [RFC 06/13] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-07 20:41 ` [RFC 07/13] power: replace RTE_LOGTYPE_POWER " Stephen Hemminger
2023-02-07 20:41 ` [RFC 08/13] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-07 20:41 ` [RFC 09/13] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-07 20:41 ` [RFC 10/13] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-07 20:41 ` [RFC 11/13] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-07 20:41 ` [RFC 12/13] hash: replace RTE_LOGTYPE_HASH " Stephen Hemminger
2023-02-07 20:41 ` [RFC 13/13] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-07 23:04 ` [RFC v2 00/17] static logtype removal Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 01/17] doc: document intention to deprecate RTE_LOGTYPE_USER* Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 02/17] ip_frag: use a dynamic logtype Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 03/17] reorder: " Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 04/17] latencystats: use " Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 05/17] gso: remove logtype Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 06/17] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 07/17] efd: replace RTE_LOGTYPE_EFD with local type Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 08/17] mbuf: replace RTE_LOGTYPE_MBUF with dynamic type Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 09/17] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 10/17] power: replace RTE_LOGTYPE_POWER " Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 11/17] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 12/17] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 13/17] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 14/17] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 15/17] hash: replace RTE_LOGTYPE_HASH " Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 16/17] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-07 23:04   ` [RFC v2 17/17] port: replace RTE_LOGTYPE_PORT " Stephen Hemminger
2023-02-10  1:07 ` [PATCH v3 00/16] Replace use of static logtypes Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 01/16] gso: remove logtype Stephen Hemminger
2023-02-10  1:47     ` fengchengwen
2023-02-10  2:29     ` Hu, Jiayu
2023-02-10  2:46       ` Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 02/16] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 03/16] efd: replace RTE_LOGTYPE_EFD with local type Stephen Hemminger
2023-02-10  2:03     ` fengchengwen
2023-02-10  2:47       ` Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 04/16] mbuf: replace RTE_LOGTYPE_MBUF with dynamic type Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 05/16] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 06/16] power: replace RTE_LOGTYPE_POWER " Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 07/16] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 08/16] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 09/16] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 10/16] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 11/16] hash: replace RTE_LOGTYPE_HASH " Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 12/16] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 13/16] port: replace RTE_LOGTYPE_PORT " Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 14/16] table: convert RTE_LOGTYPE_TABLE to dynamic logtype Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 15/16] app/test: remove use of RTE_LOGTYPE_PIPELINE Stephen Hemminger
2023-02-10  1:07   ` [PATCH v3 16/16] pipeline: replace RTE_LOGTYPE_PIPELINE with dynamic log type Stephen Hemminger
2023-02-13 19:55 ` [PATCH v4 00/19] Replace use of static logtypes Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 01/19] gso: don't log message on non TCP/UDP Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 02/19] eal: drop no longer used GSO logtype Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 03/19] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 04/19] efd: replace RTE_LOGTYPE_EFD with dynamic type Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 05/19] mbuf: replace RTE_LOGTYPE_MBUF " Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 06/19] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 07/19] power: replace RTE_LOGTYPE_POWER " Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 08/19] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 09/19] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 10/19] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 11/19] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 12/19] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 13/19] port: replace RTE_LOGTYPE_PORT " Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 14/19] table: convert RTE_LOGTYPE_TABLE to dynamic logtype Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 15/19] app/test: remove use of RTE_LOGTYPE_PIPELINE Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 16/19] pipeline: replace RTE_LOGTYPE_PIPELINE with dynamic type Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 17/19] hash: move rte_thash_gfni stubs out of header file Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 18/19] hash: move rte_hash_set_alg out header Stephen Hemminger
2023-02-13 19:55   ` [PATCH v4 19/19] hash: convert RTE_LOGTYPE_HASH to dynamic type Stephen Hemminger
2023-02-14  2:18 ` [PATCH v5 00/22] Replace us of static logtypes Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 01/22] gso: don't log message on non TCP/UDP Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 02/22] eal: drop no longer used GSO logtype Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 03/22] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 04/22] efd: replace RTE_LOGTYPE_EFD with dynamic type Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 05/22] mbuf: replace RTE_LOGTYPE_MBUF " Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 06/22] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 07/22] examples/power: replace use of RTE_LOGTYPE_POWER Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 08/22] examples/l3fwd-power: " Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 09/22] power: replace RTE_LOGTYPE_POWER with dynamic type Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 10/22] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 11/22] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 12/22] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-14  2:18   ` [PATCH v5 13/22] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-14  2:19   ` [PATCH v5 14/22] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-14  2:19   ` [PATCH v5 15/22] examples/ipsecgw: replace RTE_LOGTYPE_PORT Stephen Hemminger
2023-02-14  2:19   ` [PATCH v5 16/22] port: replace RTE_LOGTYPE_PORT with dynamic type Stephen Hemminger
2023-02-14  2:19   ` [PATCH v5 17/22] table: convert RTE_LOGTYPE_TABLE to dynamic logtype Stephen Hemminger
2023-02-14  2:19   ` [PATCH v5 18/22] app/test: remove use of RTE_LOGTYPE_PIPELINE Stephen Hemminger
2023-02-14  2:19   ` [PATCH v5 19/22] pipeline: replace RTE_LOGTYPE_PIPELINE with dynamic type Stephen Hemminger
2023-02-14  2:19   ` [PATCH v5 20/22] hash: move rte_thash_gfni stubs out of header file Stephen Hemminger
2023-02-14  2:19   ` [PATCH v5 21/22] hash: move rte_hash_set_alg out header Stephen Hemminger
2023-02-14  2:19   ` [PATCH v5 22/22] hash: convert RTE_LOGTYPE_HASH to dynamic type Stephen Hemminger
2023-02-14 22:47 ` [PATCH v6 00/22] Replace use of static logtypes in libraries Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 01/22] gso: don't log message on non TCP/UDP Stephen Hemminger
2023-02-15  7:26     ` Hu, Jiayu
2023-02-15 17:12       ` Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 02/22] eal: drop no longer used GSO logtype Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 03/22] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 04/22] efd: replace RTE_LOGTYPE_EFD with dynamic type Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 05/22] mbuf: replace RTE_LOGTYPE_MBUF " Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 06/22] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 07/22] examples/power: replace use of RTE_LOGTYPE_POWER Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 08/22] examples/l3fwd-power: " Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 09/22] power: replace RTE_LOGTYPE_POWER with dynamic type Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 10/22] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 11/22] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 12/22] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 13/22] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 14/22] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 15/22] examples/ipsecgw: replace RTE_LOGTYPE_PORT Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 16/22] port: replace RTE_LOGTYPE_PORT with dynamic type Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 17/22] table: convert RTE_LOGTYPE_TABLE to dynamic logtype Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 18/22] app/test: remove use of RTE_LOGTYPE_PIPELINE Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 19/22] pipeline: replace RTE_LOGTYPE_PIPELINE with dynamic type Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 20/22] hash: move rte_thash_gfni stubs out of header file Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 21/22] hash: move rte_hash_set_alg out header Stephen Hemminger
2023-02-14 22:47   ` [PATCH v6 22/22] hash: convert RTE_LOGTYPE_HASH to dynamic type Stephen Hemminger
2023-02-15 17:23 ` [PATCH v7 00/22] Replace use of static logtypes in libraries Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 01/22] gso: don't log message on non TCP/UDP Stephen Hemminger
2023-02-16  1:23     ` Hu, Jiayu
2023-02-15 17:23   ` [PATCH v7 02/22] eal: drop no longer used GSO logtype Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 03/22] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 04/22] efd: replace RTE_LOGTYPE_EFD with dynamic type Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 05/22] mbuf: replace RTE_LOGTYPE_MBUF " Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 06/22] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 07/22] examples/power: replace use of RTE_LOGTYPE_POWER Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 08/22] examples/l3fwd-power: " Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 09/22] power: replace RTE_LOGTYPE_POWER with dynamic type Stephen Hemminger
2023-02-22 16:34     ` Hunt, David
2023-02-15 17:23   ` [PATCH v7 10/22] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 11/22] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 12/22] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 13/22] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 14/22] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 15/22] examples/ipsecgw: replace RTE_LOGTYPE_PORT Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 16/22] port: replace RTE_LOGTYPE_PORT with dynamic type Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 17/22] table: convert RTE_LOGTYPE_TABLE to dynamic logtype Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 18/22] app/test: remove use of RTE_LOGTYPE_PIPELINE Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 19/22] pipeline: replace RTE_LOGTYPE_PIPELINE with dynamic type Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 20/22] hash: move rte_thash_gfni stubs out of header file Stephen Hemminger
2023-02-15 19:14     ` Medvedkin, Vladimir
2023-02-15 17:23   ` [PATCH v7 21/22] hash: move rte_hash_set_alg out header Stephen Hemminger
2023-02-15 17:23   ` [PATCH v7 22/22] hash: convert RTE_LOGTYPE_HASH to dynamic type Stephen Hemminger
2023-02-20 23:35 ` [PATCH v8 00/22] Convert static logtypes in libraries Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 01/22] gso: don't log message on non TCP/UDP Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 02/22] eal: drop no longer used GSO logtype Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 03/22] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 04/22] efd: replace RTE_LOGTYPE_EFD with dynamic type Stephen Hemminger
2023-02-21 14:55     ` David Marchand
2023-02-21 17:07       ` Stephen Hemminger
2023-03-29 23:31       ` Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 05/22] mbuf: replace RTE_LOGTYPE_MBUF " Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 06/22] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 07/22] examples/power: replace use of RTE_LOGTYPE_POWER Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 08/22] examples/l3fwd-power: " Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 09/22] power: replace RTE_LOGTYPE_POWER with dynamic type Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 10/22] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 11/22] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 12/22] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 13/22] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 14/22] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 15/22] examples/ipsecgw: replace RTE_LOGTYPE_PORT Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 16/22] port: replace RTE_LOGTYPE_PORT with dynamic type Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 17/22] table: convert RTE_LOGTYPE_TABLE to dynamic logtype Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 18/22] app/test: remove use of RTE_LOGTYPE_PIPELINE Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 19/22] pipeline: replace RTE_LOGTYPE_PIPELINE with dynamic type Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 20/22] hash: move rte_thash_gfni stubs out of header file Stephen Hemminger
2023-02-20 23:35   ` [PATCH v8 21/22] hash: move rte_hash_set_alg out header Stephen Hemminger
2023-02-21 15:02     ` David Marchand
2023-02-21 15:10     ` David Marchand
2023-02-20 23:35   ` [PATCH v8 22/22] hash: convert RTE_LOGTYPE_HASH to dynamic type Stephen Hemminger
2023-02-21 19:01 ` [PATCH v9 00/22] Convert static logtypes in libraries Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 01/22] gso: don't log message on non TCP/UDP Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 02/22] eal: drop no longer used GSO logtype Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 03/22] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 04/22] efd: replace RTE_LOGTYPE_EFD with dynamic type Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 05/22] mbuf: replace RTE_LOGTYPE_MBUF " Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 06/22] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 07/22] examples/power: replace use of RTE_LOGTYPE_POWER Stephen Hemminger
2023-02-22 16:34     ` Hunt, David
2023-02-21 19:01   ` [PATCH v9 08/22] examples/l3fwd-power: " Stephen Hemminger
2023-02-22 16:33     ` Hunt, David
2023-02-21 19:01   ` [PATCH v9 09/22] power: replace RTE_LOGTYPE_POWER with dynamic type Stephen Hemminger
2023-02-22 16:32     ` Hunt, David
2023-02-21 19:01   ` [PATCH v9 10/22] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 11/22] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 12/22] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-21 19:01   ` [PATCH v9 13/22] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-21 19:02   ` [PATCH v9 14/22] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-21 19:02   ` [PATCH v9 15/22] examples/ipsecgw: replace RTE_LOGTYPE_PORT Stephen Hemminger
2023-02-22  7:37     ` [EXT] " Akhil Goyal
2023-02-21 19:02   ` [PATCH v9 16/22] port: replace RTE_LOGTYPE_PORT with dynamic type Stephen Hemminger
2023-02-21 19:02   ` [PATCH v9 17/22] table: convert RTE_LOGTYPE_TABLE to dynamic logtype Stephen Hemminger
2023-02-21 19:02   ` [PATCH v9 18/22] app/test: remove use of RTE_LOGTYPE_PIPELINE Stephen Hemminger
2023-02-21 19:02   ` [PATCH v9 19/22] pipeline: replace RTE_LOGTYPE_PIPELINE with dynamic type Stephen Hemminger
2023-02-21 19:02   ` [PATCH v9 20/22] hash: move rte_thash_gfni stubs out of header file Stephen Hemminger
2023-02-21 19:02   ` [PATCH v9 21/22] hash: move rte_hash_set_alg out header Stephen Hemminger
2023-02-21 19:02   ` [PATCH v9 22/22] hash: convert RTE_LOGTYPE_HASH to dynamic type Stephen Hemminger
2023-02-22 16:07 ` [PATCH v10 00/22] Convert static log type values in libraries Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 01/22] gso: don't log message on non TCP/UDP Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 02/22] eal: drop no longer used GSO logtype Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 03/22] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 04/22] efd: replace RTE_LOGTYPE_EFD with dynamic type Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 05/22] mbuf: replace RTE_LOGTYPE_MBUF " Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 06/22] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 07/22] examples/power: replace use of RTE_LOGTYPE_POWER Stephen Hemminger
2023-02-22 16:36     ` Hunt, David
2023-02-22 16:07   ` [PATCH v10 08/22] examples/l3fwd-power: " Stephen Hemminger
2023-02-22 16:36     ` Hunt, David
2023-02-22 16:07   ` [PATCH v10 09/22] power: replace RTE_LOGTYPE_POWER with dynamic type Stephen Hemminger
2023-02-22 16:35     ` Hunt, David
2023-02-22 16:07   ` [PATCH v10 10/22] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 11/22] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 12/22] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 13/22] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 14/22] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 15/22] examples/ipsecgw: replace RTE_LOGTYPE_PORT Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 16/22] port: replace RTE_LOGTYPE_PORT with dynamic type Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 17/22] table: convert RTE_LOGTYPE_TABLE to dynamic logtype Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 18/22] app/test: remove use of RTE_LOGTYPE_PIPELINE Stephen Hemminger
2023-02-22 16:07   ` [PATCH v10 19/22] pipeline: replace RTE_LOGTYPE_PIPELINE with dynamic type Stephen Hemminger
2023-02-22 16:08   ` [PATCH v10 20/22] hash: move rte_thash_gfni stubs out of header file Stephen Hemminger
2023-02-22 16:08   ` Stephen Hemminger [this message]
2023-02-22 16:08   ` [PATCH v10 22/22] hash: convert RTE_LOGTYPE_HASH to dynamic type Stephen Hemminger
2023-02-22 21:55 ` [PATCH v11 00/22] Convert static log type values in libraries Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 01/22] gso: don't log message on non TCP/UDP Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 02/22] eal: drop no longer used GSO logtype Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 03/22] log: drop unused RTE_LOGTYPE_TIMER Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 04/22] efd: replace RTE_LOGTYPE_EFD with dynamic type Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 05/22] mbuf: replace RTE_LOGTYPE_MBUF " Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 06/22] acl: replace LOGTYPE_ACL " Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 07/22] examples/power: replace use of RTE_LOGTYPE_POWER Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 08/22] examples/l3fwd-power: " Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 09/22] power: replace RTE_LOGTYPE_POWER with dynamic type Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 10/22] ring: replace RTE_LOGTYPE_RING " Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 11/22] mempool: replace RTE_LOGTYPE_MEMPOOL " Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 12/22] lpm: replace RTE_LOGTYPE_LPM with dynamic types Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 13/22] kni: replace RTE_LOGTYPE_KNI with dynamic type Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 14/22] sched: replace RTE_LOGTYPE_SCHED " Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 15/22] examples/ipsecgw: replace RTE_LOGTYPE_PORT Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 16/22] port: replace RTE_LOGTYPE_PORT with dynamic type Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 17/22] table: convert RTE_LOGTYPE_TABLE to dynamic logtype Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 18/22] app/test: remove use of RTE_LOGTYPE_PIPELINE Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 19/22] pipeline: replace RTE_LOGTYPE_PIPELINE with dynamic type Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 20/22] hash: move rte_thash_gfni stubs out of header file Stephen Hemminger
2023-02-22 21:55   ` [PATCH v11 21/22] hash: move rte_hash_set_alg out header Stephen Hemminger
2023-02-23  7:11     ` Ruifeng Wang
2023-02-23  7:27       ` Ruifeng Wang
2023-02-24  9:45     ` Ruifeng Wang
2023-02-22 21:55   ` [PATCH v11 22/22] hash: convert RTE_LOGTYPE_HASH to dynamic type Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230222160802.123611-22-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=ruifeng.wang@arm.com \
    --cc=sameh.gobriel@intel.com \
    --cc=vladimir.medvedkin@intel.com \
    --cc=yipeng1.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).