DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries.
@ 2023-02-08  4:48 Stephen Hemminger
  2023-02-08  4:48 ` [PATCH 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
                   ` (9 more replies)
  0 siblings, 10 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-08  4:48 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

This is split out of other rte_log patchset.
The DPDK libraries and drivers should not be using the USER1 logtype.

Stephen Hemminger (5):
  ip_frag: use a dynamic logtype
  reorder: use a dynamic logtype
  latencystats: use dynamic logtype
  vhost: use logtype instead of RTE_LOGTYPE_USER1
  ipsec: fix usage of RTE_LOGTYPE_USER1

 drivers/crypto/ipsec_mb/ipsec_mb_ops.c |   3 +-
 lib/ip_frag/ip_frag_common.h           |  16 ++-
 lib/ip_frag/ip_frag_internal.c         | 174 ++++++++++++-------------
 lib/ip_frag/rte_ip_frag_common.c       |  13 +-
 lib/ip_frag/rte_ipv4_reassembly.c      |  14 +-
 lib/ip_frag/rte_ipv6_reassembly.c      |  59 ++++-----
 lib/latencystats/rte_latencystats.c    |  55 ++++----
 lib/reorder/rte_reorder.c              |  35 ++---
 lib/vhost/fd_man.c                     |  16 ++-
 lib/vhost/vhost_crypto.c               |  24 ++--
 10 files changed, 206 insertions(+), 203 deletions(-)

-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 1/5] ip_frag: use a dynamic logtype
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
@ 2023-02-08  4:48 ` Stephen Hemminger
  2023-02-08 23:52   ` Konstantin Ananyev
  2023-02-08  4:48 ` [PATCH 2/5] reorder: " Stephen Hemminger
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-08  4:48 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, Konstantin Ananyev, Anatoly Burakov, Thomas Monjalon

DPDK libraries should not be reusing RTE_LOGTYPE_USER1 in
lieu of doing proper logtype registration.

Fixes: 416707812c03 ("ip_frag: refactor reassembly code into a proper library")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/ip_frag/ip_frag_common.h      |  16 ++-
 lib/ip_frag/ip_frag_internal.c    | 174 +++++++++++++++---------------
 lib/ip_frag/rte_ip_frag_common.c  |  13 +--
 lib/ip_frag/rte_ipv4_reassembly.c |  14 ++-
 lib/ip_frag/rte_ipv6_reassembly.c |  59 +++++-----
 5 files changed, 138 insertions(+), 138 deletions(-)

diff --git a/lib/ip_frag/ip_frag_common.h b/lib/ip_frag/ip_frag_common.h
index 9c0dbdeb6eb9..134072f3e810 100644
--- a/lib/ip_frag/ip_frag_common.h
+++ b/lib/ip_frag/ip_frag_common.h
@@ -9,8 +9,16 @@
 #include "ip_reassembly.h"
 
 /* logging macros. */
+extern int ipfrag_logtype;
+
+#define IP_FRAG_ERR(fmt, args...) \
+	rte_log(RTE_LOG_ERR, ipfrag_logtype, \
+		"%s: " fmt "\n", __func__, ## args)
+
 #ifdef RTE_LIBRTE_IP_FRAG_DEBUG
-#define	IP_FRAG_LOG(lvl, fmt, args...)	RTE_LOG(lvl, USER1, fmt, ##args)
+#define	IP_FRAG_LOG(lvl, fmt, args...)	\
+	rte_log(RTE_LOG ## lvl, ipfrag_logtype, \
+		"%s: " fmt "\n", __func__, ## args)
 #else
 #define	IP_FRAG_LOG(lvl, fmt, args...)	do {} while(0)
 #endif /* IP_FRAG_DEBUG */
@@ -111,9 +119,9 @@ ip_frag_free_immediate(struct ip_frag_pkt *fp)
 
 	for (i = 0; i < fp->last_idx; i++) {
 		if (fp->frags[i].mb != NULL) {
-			IP_FRAG_LOG(DEBUG, "%s:%d\n"
-			    "mbuf: %p, tms: %" PRIu64", key: <%" PRIx64 ", %#x>\n",
-			    __func__, __LINE__, fp->frags[i].mb, fp->start,
+			IP_FRAG_LOG(DEBUG,
+			    "mbuf: %p, tms: %" PRIu64", key: <%" PRIx64 ", %#x>",
+			    fp->frags[i].mb, fp->start,
 			    fp->key.src_dst[0], fp->key.id);
 			rte_pktmbuf_free(fp->frags[i].mb);
 			fp->frags[i].mb = NULL;
diff --git a/lib/ip_frag/ip_frag_internal.c b/lib/ip_frag/ip_frag_internal.c
index b436a4c9313b..c633216419a2 100644
--- a/lib/ip_frag/ip_frag_internal.c
+++ b/lib/ip_frag/ip_frag_internal.c
@@ -89,7 +89,7 @@ ipv6_frag_hash(const struct ip_frag_key *key, uint32_t *v1, uint32_t *v2)
 
 struct rte_mbuf *
 ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
-	struct rte_mbuf *mb, uint16_t ofs, uint16_t len, uint16_t more_frags)
+		struct rte_mbuf *mb, uint16_t ofs, uint16_t len, uint16_t more_frags)
 {
 	uint32_t idx;
 
@@ -98,15 +98,15 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 	/* this is the first fragment. */
 	if (ofs == 0) {
 		idx = (fp->frags[IP_FIRST_FRAG_IDX].mb == NULL) ?
-				IP_FIRST_FRAG_IDX : UINT32_MAX;
+			IP_FIRST_FRAG_IDX : UINT32_MAX;
 
-	/* this is the last fragment. */
+		/* this is the last fragment. */
 	} else if (more_frags == 0) {
 		fp->total_size = ofs + len;
 		idx = (fp->frags[IP_LAST_FRAG_IDX].mb == NULL) ?
-				IP_LAST_FRAG_IDX : UINT32_MAX;
+			IP_LAST_FRAG_IDX : UINT32_MAX;
 
-	/* this is the intermediate fragment. */
+		/* this is the intermediate fragment. */
 	} else if ((idx = fp->last_idx) < RTE_DIM(fp->frags)) {
 		fp->last_idx++;
 	}
@@ -119,31 +119,31 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 
 		/* report an error. */
 		if (fp->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, fp->key.src_dst[0], fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, fp->key.src_dst[0], fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 
 		/* free all fragments, invalidate the entry. */
 		ip_frag_free(fp, dr);
@@ -163,9 +163,9 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 	if (likely (fp->frag_size < fp->total_size)) {
 		return mb;
 
-	/* if we collected all fragments, then try to reassemble. */
+		/* if we collected all fragments, then try to reassemble. */
 	} else if (fp->frag_size == fp->total_size &&
-			fp->frags[IP_FIRST_FRAG_IDX].mb != NULL) {
+		   fp->frags[IP_FIRST_FRAG_IDX].mb != NULL) {
 		if (fp->key.key_len == IPV4_KEYLEN)
 			mb = ipv4_frag_reassemble(fp);
 		else
@@ -177,31 +177,31 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 
 		/* report an error. */
 		if (fp->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, fp->key.src_dst[0], fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n,
+				    fp, fp->key.src_dst[0], fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 
 		/* free associated resources. */
 		ip_frag_free(fp, dr);
@@ -282,8 +282,8 @@ ip_frag_find(struct rte_ip_frag_tbl *tbl, struct rte_ip_frag_death_row *dr,
 
 struct ip_frag_pkt *
 ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
-	const struct ip_frag_key *key, uint64_t tms,
-	struct ip_frag_pkt **free, struct ip_frag_pkt **stale)
+	       const struct ip_frag_key *key, uint64_t tms,
+	       struct ip_frag_pkt **free, struct ip_frag_pkt **stale)
 {
 	struct ip_frag_pkt *p1, *p2;
 	struct ip_frag_pkt *empty, *old;
@@ -310,23 +310,21 @@ ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
 
 	for (i = 0; i != assoc; i++) {
 		if (p1->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv4_frag_pkt line0: %p, index: %u from %u\n"
-			"key: <%" PRIx64 ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p1, i, assoc,
-			p1[i].key.src_dst[0], p1[i].key.id, p1[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv4_frag_pkt line0: %p, index: %u from %u\n"
+				    "key: <%" PRIx64 ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p1, i, assoc,
+				    p1[i].key.src_dst[0], p1[i].key.id, p1[i].start);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv6_frag_pkt line0: %p, index: %u from %u\n"
-			"key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p1, i, assoc,
-			IPv6_KEY_BYTES(p1[i].key.src_dst), p1[i].key.id, p1[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv6_frag_pkt line0: %p, index: %u from %u\n"
+				    "key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p1, i, assoc,
+				    IPv6_KEY_BYTES(p1[i].key.src_dst), p1[i].key.id, p1[i].start);
 
 		if (ip_frag_key_cmp(key, &p1[i].key) == 0)
 			return p1 + i;
@@ -336,23 +334,21 @@ ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
 			old = (old == NULL) ? (p1 + i) : old;
 
 		if (p2->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv4_frag_pkt line1: %p, index: %u from %u\n"
-			"key: <%" PRIx64 ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p2, i, assoc,
-			p2[i].key.src_dst[0], p2[i].key.id, p2[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv4_frag_pkt line1: %p, index: %u from %u\n"
+				    "key: <%" PRIx64 ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p2, i, assoc,
+				    p2[i].key.src_dst[0], p2[i].key.id, p2[i].start);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv6_frag_pkt line1: %p, index: %u from %u\n"
-			"key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p2, i, assoc,
-			IPv6_KEY_BYTES(p2[i].key.src_dst), p2[i].key.id, p2[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv6_frag_pkt line1: %p, index: %u from %u\n"
+				    "key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p2, i, assoc,
+				    IPv6_KEY_BYTES(p2[i].key.src_dst), p2[i].key.id, p2[i].start);
 
 		if (ip_frag_key_cmp(key, &p2[i].key) == 0)
 			return p2 + i;
diff --git a/lib/ip_frag/rte_ip_frag_common.c b/lib/ip_frag/rte_ip_frag_common.c
index c1de2e81b6d0..b8ca9e019c54 100644
--- a/lib/ip_frag/rte_ip_frag_common.c
+++ b/lib/ip_frag/rte_ip_frag_common.c
@@ -52,21 +52,20 @@ rte_ip_frag_table_create(uint32_t bucket_num, uint32_t bucket_entries,
 	if (rte_is_power_of_2(bucket_entries) == 0 ||
 			nb_entries > UINT32_MAX || nb_entries == 0 ||
 			nb_entries < max_entries) {
-		RTE_LOG(ERR, USER1, "%s: invalid input parameter\n", __func__);
+		IP_FRAG_ERR("invalid input parameter");
 		return NULL;
 	}
 
 	sz = sizeof (*tbl) + nb_entries * sizeof (tbl->pkt[0]);
 	if ((tbl = rte_zmalloc_socket(__func__, sz, RTE_CACHE_LINE_SIZE,
 			socket_id)) == NULL) {
-		RTE_LOG(ERR, USER1,
-			"%s: allocation of %zu bytes at socket %d failed do\n",
-			__func__, sz, socket_id);
+		IP_FRAG_ERR("allocation of %zu bytes at socket %d failed do",
+			sz, socket_id);
 		return NULL;
 	}
 
-	RTE_LOG(INFO, USER1, "%s: allocated of %zu bytes at socket %d\n",
-		__func__, sz, socket_id);
+	IP_FRAG_LOG(INFO, "allocated of %zu bytes at socket %d",
+		    sz, socket_id);
 
 	tbl->max_cycles = max_cycles;
 	tbl->max_entries = max_entries;
@@ -142,3 +141,5 @@ rte_ip_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl,
 		} else
 			return;
 }
+
+RTE_LOG_REGISTER_DEFAULT(ipfrag_logtype, INFO);
diff --git a/lib/ip_frag/rte_ipv4_reassembly.c b/lib/ip_frag/rte_ipv4_reassembly.c
index 4a89a5f5365a..2cdbdc4ee87f 100644
--- a/lib/ip_frag/rte_ipv4_reassembly.c
+++ b/lib/ip_frag/rte_ipv4_reassembly.c
@@ -120,12 +120,11 @@ rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 	ip_len = rte_be_to_cpu_16(ip_hdr->total_length) - mb->l3_len;
 	trim = mb->pkt_len - (ip_len + mb->l3_len + mb->l2_len);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
+	IP_FRAG_LOG(DEBUG,
 		"mbuf: %p, tms: %" PRIu64 ", key: <%" PRIx64 ", %#x>"
 		"ofs: %u, len: %d, padding: %d, flags: %#x\n"
 		"tbl: %p, max_cycles: %" PRIu64 ", entry_mask: %#x, "
-		"max_entries: %u, use_entries: %u\n\n",
-		__func__, __LINE__,
+		"max_entries: %u, use_entries: %u\n",
 		mb, tms, key.src_dst[0], key.id, ip_ofs, ip_len, trim, ip_flag,
 		tbl, tbl->max_cycles, tbl->entry_mask, tbl->max_entries,
 		tbl->use_entries);
@@ -145,11 +144,10 @@ rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 		return NULL;
 	}
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
+	IP_FRAG_LOG(DEBUG,
 		"tbl: %p, max_entries: %u, use_entries: %u\n"
 		"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
-		__func__, __LINE__,
+		", total_size: %u, frag_size: %u, last_idx: %u\n",
 		tbl, tbl->max_entries, tbl->use_entries,
 		fp, fp->key.src_dst[0], fp->key.id, fp->start,
 		fp->total_size, fp->frag_size, fp->last_idx);
@@ -159,11 +157,11 @@ rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 	mb = ip_frag_process(fp, dr, mb, ip_ofs, ip_len, ip_flag);
 	ip_frag_inuse(tbl, fp);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
+	IP_FRAG_LOG(DEBUG,
 		"mbuf: %p\n"
 		"tbl: %p, max_entries: %u, use_entries: %u\n"
 		"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
+		", total_size: %u, frag_size: %u, last_idx: %u\n",
 		__func__, __LINE__, mb,
 		tbl, tbl->max_entries, tbl->use_entries,
 		fp, fp->key.src_dst[0], fp->key.id, fp->start,
diff --git a/lib/ip_frag/rte_ipv6_reassembly.c b/lib/ip_frag/rte_ipv6_reassembly.c
index d4019e87e63a..c3e369f4ce42 100644
--- a/lib/ip_frag/rte_ipv6_reassembly.c
+++ b/lib/ip_frag/rte_ipv6_reassembly.c
@@ -135,8 +135,8 @@ ipv6_frag_reassemble(struct ip_frag_pkt *fp)
 #define FRAG_OFFSET(x) (rte_cpu_to_be_16(x) >> 3)
 struct rte_mbuf *
 rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
-	struct rte_ip_frag_death_row *dr, struct rte_mbuf *mb, uint64_t tms,
-	struct rte_ipv6_hdr *ip_hdr, struct rte_ipv6_fragment_ext *frag_hdr)
+				struct rte_ip_frag_death_row *dr, struct rte_mbuf *mb, uint64_t tms,
+				struct rte_ipv6_hdr *ip_hdr, struct rte_ipv6_fragment_ext *frag_hdr)
 {
 	struct ip_frag_pkt *fp;
 	struct ip_frag_key key;
@@ -161,17 +161,16 @@ rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 	ip_len = rte_be_to_cpu_16(ip_hdr->payload_len) - sizeof(*frag_hdr);
 	trim = mb->pkt_len - (ip_len + mb->l3_len + mb->l2_len);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-		"mbuf: %p, tms: %" PRIu64
-		", key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
-		"ofs: %u, len: %d, padding: %d, flags: %#x\n"
-		"tbl: %p, max_cycles: %" PRIu64 ", entry_mask: %#x, "
-		"max_entries: %u, use_entries: %u\n\n",
-		__func__, __LINE__,
-		mb, tms, IPv6_KEY_BYTES(key.src_dst), key.id, ip_ofs, ip_len,
-		trim, RTE_IPV6_GET_MF(frag_hdr->frag_data),
-		tbl, tbl->max_cycles, tbl->entry_mask, tbl->max_entries,
-		tbl->use_entries);
+	IP_FRAG_LOG(DEBUG,
+		    "mbuf: %p, tms: %" PRIu64
+		    ", key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
+		    "ofs: %u, len: %d, padding: %d, flags: %#x\n"
+		    "tbl: %p, max_cycles: %" PRIu64 ", entry_mask: %#x, "
+		    "max_entries: %u, use_entries: %u\n",
+		    mb, tms, IPv6_KEY_BYTES(key.src_dst), key.id, ip_ofs, ip_len,
+		    trim, RTE_IPV6_GET_MF(frag_hdr->frag_data),
+		    tbl, tbl->max_cycles, tbl->entry_mask, tbl->max_entries,
+		    tbl->use_entries);
 
 	/* check that fragment length is greater then zero. */
 	if (ip_len <= 0) {
@@ -189,30 +188,28 @@ rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 		return NULL;
 	}
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-		"tbl: %p, max_entries: %u, use_entries: %u\n"
-		"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
-		__func__, __LINE__,
-		tbl, tbl->max_entries, tbl->use_entries,
-		fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
-		fp->total_size, fp->frag_size, fp->last_idx);
+	IP_FRAG_LOG(DEBUG,
+		    "tbl: %p, max_entries: %u, use_entries: %u\n"
+		    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
+		    ", total_size: %u, frag_size: %u, last_idx: %u\n",
+		    tbl, tbl->max_entries, tbl->use_entries,
+		    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
+		    fp->total_size, fp->frag_size, fp->last_idx);
 
 
 	/* process the fragmented packet. */
 	mb = ip_frag_process(fp, dr, mb, ip_ofs, ip_len,
-			MORE_FRAGS(frag_hdr->frag_data));
+			     MORE_FRAGS(frag_hdr->frag_data));
 	ip_frag_inuse(tbl, fp);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-		"mbuf: %p\n"
-		"tbl: %p, max_entries: %u, use_entries: %u\n"
-		"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
-		__func__, __LINE__, mb,
-		tbl, tbl->max_entries, tbl->use_entries,
-		fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
-		fp->total_size, fp->frag_size, fp->last_idx);
+	IP_FRAG_LOG(DEBUG,
+		    "mbuf: %p\n"
+		    "tbl: %p, max_entries: %u, use_entries: %u\n"
+		    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
+		    ", total_size: %u, frag_size: %u, last_idx: %u\n",
+		    mb, tbl, tbl->max_entries, tbl->use_entries,
+		    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
+		    fp->total_size, fp->frag_size, fp->last_idx);
 
 	return mb;
 }
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 2/5] reorder: use a dynamic logtype
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
  2023-02-08  4:48 ` [PATCH 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
@ 2023-02-08  4:48 ` Stephen Hemminger
  2023-02-08  4:48 ` [PATCH 3/5] latencystats: use " Stephen Hemminger
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-08  4:48 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, sergio.gonzalez.monroy, Reshma Pattan,
	Declan Doherty, Neil Horman, Richardson Bruce

Libraries should not be reusing RTE_LOGTYPE_USER1 instead
of doing proper logtype registration.

Fixes: b70b56032bff ("reorder: new library")
Cc: sergio.gonzalez.monroy@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/reorder/rte_reorder.c | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/lib/reorder/rte_reorder.c b/lib/reorder/rte_reorder.c
index 385ee479da42..c9ae42e71783 100644
--- a/lib/reorder/rte_reorder.c
+++ b/lib/reorder/rte_reorder.c
@@ -27,7 +27,11 @@ EAL_REGISTER_TAILQ(rte_reorder_tailq)
 #define RTE_REORDER_NAMESIZE 32
 
 /* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_REORDER	RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_DEFAULT(reorder_logtype, INFO);
+
+#define REORDER_LOG(level, fmt, args...)		\
+	rte_log(RTE_LOG_ ## level, reorder_logtype,	\
+		"%s(): " fmt "\n", __func__, ##args)
 
 #define RTE_REORDER_SEQN_DYNFIELD_NAME "rte_reorder_seqn_dynfield"
 int rte_reorder_seqn_dynfield_offset = -1;
@@ -62,26 +66,25 @@ rte_reorder_init(struct rte_reorder_buffer *b, unsigned int bufsize,
 					(2 * size * sizeof(struct rte_mbuf *));
 
 	if (b == NULL) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer parameter:"
-					" NULL\n");
+		REORDER_LOG(ERR, "Invalid reorder buffer parameter: NULL");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (!rte_is_power_of_2(size)) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer size"
-				" - Not a power of 2\n");
+		REORDER_LOG(ERR,
+			    "Invalid reorder buffer size - Not a power of 2");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (name == NULL) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer name ptr:"
-					" NULL\n");
+		REORDER_LOG(ERR, "Invalid reorder buffer name ptr: NULL");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (bufsize < min_bufsize) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer memory size: %u, "
-			"minimum required: %u\n", bufsize, min_bufsize);
+		REORDER_LOG(ERR,
+			    "Invalid reorder buffer memory size: %u, minimum required: %u",
+			    bufsize, min_bufsize);
 		rte_errno = EINVAL;
 		return NULL;
 	}
@@ -116,14 +119,13 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 
 	/* Check user arguments. */
 	if (!rte_is_power_of_2(size)) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer size"
-				" - Not a power of 2\n");
+		REORDER_LOG(ERR,
+			    "Invalid reorder buffer size - Not a power of 2");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (name == NULL) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer name ptr:"
-					" NULL\n");
+		REORDER_LOG(ERR, "Invalid reorder buffer name ptr: NULL");
 		rte_errno = EINVAL;
 		return NULL;
 	}
@@ -131,7 +133,8 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 	rte_reorder_seqn_dynfield_offset =
 		rte_mbuf_dynfield_register(&reorder_seqn_dynfield_desc);
 	if (rte_reorder_seqn_dynfield_offset < 0) {
-		RTE_LOG(ERR, REORDER, "Failed to register mbuf field for reorder sequence number\n");
+		REORDER_LOG(ERR,
+			    "Failed to register mbuf field for reorder sequence number");
 		rte_errno = ENOMEM;
 		return NULL;
 	}
@@ -150,7 +153,7 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 	/* allocate tailq entry */
 	te = rte_zmalloc("REORDER_TAILQ_ENTRY", sizeof(*te), 0);
 	if (te == NULL) {
-		RTE_LOG(ERR, REORDER, "Failed to allocate tailq entry\n");
+		REORDER_LOG(ERR, "Failed to allocate tailq entry");
 		rte_errno = ENOMEM;
 		b = NULL;
 		goto exit;
@@ -159,7 +162,7 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 	/* Allocate memory to store the reorder buffer structure. */
 	b = rte_zmalloc_socket("REORDER_BUFFER", bufsize, 0, socket_id);
 	if (b == NULL) {
-		RTE_LOG(ERR, REORDER, "Memzone allocation failed\n");
+		REORDER_LOG(ERR, "Memzone allocation failed");
 		rte_errno = ENOMEM;
 		rte_free(te);
 	} else {
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 3/5] latencystats: use dynamic logtype
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
  2023-02-08  4:48 ` [PATCH 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
  2023-02-08  4:48 ` [PATCH 2/5] reorder: " Stephen Hemminger
@ 2023-02-08  4:48 ` Stephen Hemminger
  2023-02-08  4:48 ` [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-08  4:48 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, reshma.pattan, Remy Horton, Harry van Haaren

Libraries should not reuse RTE_LOGTYPE_USER1 for their
logging. Instead they should register their own type.

Fixes: 5cd3cac9ed22 ("latency: added new library for latency stats")
Cc: reshma.pattan@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/latencystats/rte_latencystats.c | 55 +++++++++++++++--------------
 1 file changed, 28 insertions(+), 27 deletions(-)

diff --git a/lib/latencystats/rte_latencystats.c b/lib/latencystats/rte_latencystats.c
index 8985a377db4e..3a4c47e2b34a 100644
--- a/lib/latencystats/rte_latencystats.c
+++ b/lib/latencystats/rte_latencystats.c
@@ -26,7 +26,10 @@ latencystat_cycles_per_ns(void)
 }
 
 /* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_LATENCY_STATS RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_DEFAULT(latencystat_logtype, INFO);
+#define LATENCYSTATS_LOG(level, fmt, args...)		\
+	rte_log(RTE_LOG_ ## level, latencystat_logtype,	\
+		"%s(): " fmt "\n", __func__, ## args)
 
 static uint64_t timestamp_dynflag;
 static int timestamp_dynfield_offset = -1;
@@ -95,7 +98,7 @@ rte_latencystats_update(void)
 					latency_stats_index,
 					values, NUM_LATENCY_STATS);
 	if (ret < 0)
-		RTE_LOG(INFO, LATENCY_STATS, "Failed to push the stats\n");
+		LATENCYSTATS_LOG(INFO, "Failed to push the stats");
 
 	return ret;
 }
@@ -227,8 +230,7 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 	mz = rte_memzone_reserve(MZ_RTE_LATENCY_STATS, sizeof(*glob_stats),
 					rte_socket_id(), flags);
 	if (mz == NULL) {
-		RTE_LOG(ERR, LATENCY_STATS, "Cannot reserve memory: %s:%d\n",
-			__func__, __LINE__);
+		LATENCYSTATS_LOG(ERR, "Cannot reserve memory");
 		return -ENOMEM;
 	}
 
@@ -243,8 +245,7 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 	latency_stats_index = rte_metrics_reg_names(ptr_strings,
 							NUM_LATENCY_STATS);
 	if (latency_stats_index < 0) {
-		RTE_LOG(DEBUG, LATENCY_STATS,
-			"Failed to register latency stats names\n");
+		LATENCYSTATS_LOG(ERR, "Failed to register latency stats names");
 		return -1;
 	}
 
@@ -252,8 +253,8 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 	ret = rte_mbuf_dyn_rx_timestamp_register(&timestamp_dynfield_offset,
 			&timestamp_dynflag);
 	if (ret != 0) {
-		RTE_LOG(ERR, LATENCY_STATS,
-			"Cannot register mbuf field/flag for timestamp\n");
+		LATENCYSTATS_LOG(ERR,
+				 "Cannot register mbuf field/flag for timestamp");
 		return -rte_errno;
 	}
 
@@ -263,9 +264,9 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 
 		ret = rte_eth_dev_info_get(pid, &dev_info);
 		if (ret != 0) {
-			RTE_LOG(INFO, LATENCY_STATS,
-				"Error during getting device (port %u) info: %s\n",
-				pid, strerror(-ret));
+			LATENCYSTATS_LOG(INFO,
+					 "Error during getting device (port %u) info: %s",
+					 pid, strerror(-ret));
 
 			continue;
 		}
@@ -275,18 +276,18 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 			cbs->cb = rte_eth_add_first_rx_callback(pid, qid,
 					add_time_stamps, user_cb);
 			if (!cbs->cb)
-				RTE_LOG(INFO, LATENCY_STATS, "Failed to "
-					"register Rx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "Failed to register Rx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 		for (qid = 0; qid < dev_info.nb_tx_queues; qid++) {
 			cbs = &tx_cbs[pid][qid];
 			cbs->cb =  rte_eth_add_tx_callback(pid, qid,
 					calc_latency, user_cb);
 			if (!cbs->cb)
-				RTE_LOG(INFO, LATENCY_STATS, "Failed to "
-					"register Tx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "Failed to register Tx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 	}
 	return 0;
@@ -307,8 +308,8 @@ rte_latencystats_uninit(void)
 
 		ret = rte_eth_dev_info_get(pid, &dev_info);
 		if (ret != 0) {
-			RTE_LOG(INFO, LATENCY_STATS,
-				"Error during getting device (port %u) info: %s\n",
+			LATENCYSTATS_LOG(INFO,
+				"Error during getting device (port %u) info: %s",
 				pid, strerror(-ret));
 
 			continue;
@@ -318,17 +319,17 @@ rte_latencystats_uninit(void)
 			cbs = &rx_cbs[pid][qid];
 			ret = rte_eth_remove_rx_callback(pid, qid, cbs->cb);
 			if (ret)
-				RTE_LOG(INFO, LATENCY_STATS, "failed to "
-					"remove Rx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "failed to remove Rx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 		for (qid = 0; qid < dev_info.nb_tx_queues; qid++) {
 			cbs = &tx_cbs[pid][qid];
 			ret = rte_eth_remove_tx_callback(pid, qid, cbs->cb);
 			if (ret)
-				RTE_LOG(INFO, LATENCY_STATS, "failed to "
-					"remove Tx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "failed to remove Tx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 	}
 
@@ -365,8 +366,8 @@ rte_latencystats_get(struct rte_metric_value *values, uint16_t size)
 		const struct rte_memzone *mz;
 		mz = rte_memzone_lookup(MZ_RTE_LATENCY_STATS);
 		if (mz == NULL) {
-			RTE_LOG(ERR, LATENCY_STATS,
-				"Latency stats memzone not found\n");
+			LATENCYSTATS_LOG(ERR,
+					 "Latency stats memzone not found");
 			return -ENOMEM;
 		}
 		glob_stats =  mz->addr;
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                   ` (2 preceding siblings ...)
  2023-02-08  4:48 ` [PATCH 3/5] latencystats: use " Stephen Hemminger
@ 2023-02-08  4:48 ` Stephen Hemminger
  2023-02-09  7:19   ` Xia, Chenbo
  2023-02-08  4:48 ` [PATCH 5/5] ipsec: fix usage " Stephen Hemminger
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-08  4:48 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Maxime Coquelin, Chenbo Xia

Fix instances of USER1 logtype in fdset and crypto
sections.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/vhost/fd_man.c       | 16 +++++++++-------
 lib/vhost/vhost_crypto.c | 24 ++++++++++--------------
 2 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/lib/vhost/fd_man.c b/lib/vhost/fd_man.c
index 1876fada3354..172f7dc03ab2 100644
--- a/lib/vhost/fd_man.c
+++ b/lib/vhost/fd_man.c
@@ -10,8 +10,10 @@
 
 #include "fd_man.h"
 
-
-#define RTE_LOGTYPE_VHOST_FDMAN RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_SUFFIX(vhost_fdset_logtype, fdset, INFO);
+#define FDSET_LOG(level, fmt, args...)		\
+	rte_log(RTE_LOG_ ## level, vhost_fdset_logtype,	\
+		"%s(): " fmt "\n", __func__, ## args)
 
 #define FDPOLLERR (POLLERR | POLLHUP | POLLNVAL)
 
@@ -334,8 +336,8 @@ fdset_pipe_init(struct fdset *fdset)
 	int ret;
 
 	if (pipe(fdset->u.pipefd) < 0) {
-		RTE_LOG(ERR, VHOST_FDMAN,
-			"failed to create pipe for vhost fdset\n");
+		FDSET_LOG(ERR,
+			"failed to create pipe for vhost fdset");
 		return -1;
 	}
 
@@ -343,9 +345,9 @@ fdset_pipe_init(struct fdset *fdset)
 			fdset_pipe_read_cb, NULL, NULL);
 
 	if (ret < 0) {
-		RTE_LOG(ERR, VHOST_FDMAN,
-			"failed to add pipe readfd %d into vhost server fdset\n",
-			fdset->u.readfd);
+		FDSET_LOG(ERR,
+			  "failed to add pipe readfd %d into vhost server fdset",
+			  fdset->u.readfd);
 
 		fdset_pipe_uninit(fdset);
 		return -1;
diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
index b448b6685dd2..923c7c0e10d2 100644
--- a/lib/vhost/vhost_crypto.c
+++ b/lib/vhost/vhost_crypto.c
@@ -16,22 +16,18 @@
 #define IV_OFFSET		(sizeof(struct rte_crypto_op) + \
 				sizeof(struct rte_crypto_sym_op))
 
+RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);
+
+#define VC_LOG(level, fmt, args...)				\
+	rte_log(RTE_LOG_ ## level, vhost_crypto_logtype,	\
+		"%s():%u: " fmt "\n", __func__, ## args)
+
+#define VC_LOG_ERR(fmt, args...)	VC_LOG(ERR, fmt, ## args)
+#define VC_LOG_INFO(fmt, args...)	VC_LOG(INFO, fmt, ## args)
+
 #ifdef RTE_LIBRTE_VHOST_DEBUG
-#define VC_LOG_ERR(fmt, args...)				\
-	RTE_LOG(ERR, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
-#define VC_LOG_INFO(fmt, args...)				\
-	RTE_LOG(INFO, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
-
-#define VC_LOG_DBG(fmt, args...)				\
-	RTE_LOG(DEBUG, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
+#define VC_LOG_DBG(fmt, args...)	VC_LOG(DEBUG, fmt, ## args)
 #else
-#define VC_LOG_ERR(fmt, args...)				\
-	RTE_LOG(ERR, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
-#define VC_LOG_INFO(fmt, args...)				\
-	RTE_LOG(INFO, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
 #define VC_LOG_DBG(fmt, args...)
 #endif
 
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 5/5] ipsec: fix usage of RTE_LOGTYPE_USER1
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                   ` (3 preceding siblings ...)
  2023-02-08  4:48 ` [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
@ 2023-02-08  4:48 ` Stephen Hemminger
  2023-02-10  0:22 ` [PATCH v3 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-08  4:48 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, kai.ji, Pablo de Lara, Arkadiusz Kusztal

There already is a logtype in this driver, use it!

Fixes: b35848bc01f6 ("crypto/ipsec_mb: add multi-process IPC request handler")
Cc: kai.ji@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
index 3e52f9567401..e9eb0d15b794 100644
--- a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
+++ b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
@@ -7,6 +7,7 @@
 
 #include <rte_common.h>
 #include <rte_malloc.h>
+#include <rte_log.h>
 
 #include "ipsec_mb_private.h"
 
@@ -125,7 +126,7 @@ ipsec_mb_secondary_qp_op(int dev_id, int qp_id,
 	qp_req_msg.num_fds = 0;
 	ret = rte_mp_request_sync(&qp_req_msg, &qp_resp, &ts);
 	if (ret) {
-		RTE_LOG(ERR, USER1, "Create MR request to primary process failed.");
+		IPSEC_MB_LOG(ERR, "Create MR request to primary process failed.");
 		return -1;
 	}
 	qp_resp_msg = &qp_resp.msgs[0];
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 1/5] ip_frag: use a dynamic logtype
  2023-02-08  4:48 ` [PATCH 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
@ 2023-02-08 23:52   ` Konstantin Ananyev
  0 siblings, 0 replies; 50+ messages in thread
From: Konstantin Ananyev @ 2023-02-08 23:52 UTC (permalink / raw)
  To: Stephen Hemminger, dev; +Cc: Anatoly Burakov, Thomas Monjalon

08/02/2023 04:48, Stephen Hemminger пишет:
> DPDK libraries should not be reusing RTE_LOGTYPE_USER1 in
> lieu of doing proper logtype registration.
> 
> Fixes: 416707812c03 ("ip_frag: refactor reassembly code into a proper library")
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>   lib/ip_frag/ip_frag_common.h      |  16 ++-
>   lib/ip_frag/ip_frag_internal.c    | 174 +++++++++++++++---------------
>   lib/ip_frag/rte_ip_frag_common.c  |  13 +--
>   lib/ip_frag/rte_ipv4_reassembly.c |  14 ++-
>   lib/ip_frag/rte_ipv6_reassembly.c |  59 +++++-----
>   5 files changed, 138 insertions(+), 138 deletions(-)


Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>

^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1
  2023-02-08  4:48 ` [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
@ 2023-02-09  7:19   ` Xia, Chenbo
  0 siblings, 0 replies; 50+ messages in thread
From: Xia, Chenbo @ 2023-02-09  7:19 UTC (permalink / raw)
  To: Stephen Hemminger, dev; +Cc: Maxime Coquelin

> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Wednesday, February 8, 2023 12:48 PM
> To: dev@dpdk.org
> Cc: Stephen Hemminger <stephen@networkplumber.org>; Maxime Coquelin
> <maxime.coquelin@redhat.com>; Xia, Chenbo <chenbo.xia@intel.com>
> Subject: [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1
> 
> Fix instances of USER1 logtype in fdset and crypto
> sections.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  lib/vhost/fd_man.c       | 16 +++++++++-------
>  lib/vhost/vhost_crypto.c | 24 ++++++++++--------------
>  2 files changed, 19 insertions(+), 21 deletions(-)
> 
> diff --git a/lib/vhost/fd_man.c b/lib/vhost/fd_man.c
> index 1876fada3354..172f7dc03ab2 100644
> --- a/lib/vhost/fd_man.c
> +++ b/lib/vhost/fd_man.c
> @@ -10,8 +10,10 @@
> 
>  #include "fd_man.h"
> 
> -
> -#define RTE_LOGTYPE_VHOST_FDMAN RTE_LOGTYPE_USER1
> +RTE_LOG_REGISTER_SUFFIX(vhost_fdset_logtype, fdset, INFO);
> +#define FDSET_LOG(level, fmt, args...)		\
> +	rte_log(RTE_LOG_ ## level, vhost_fdset_logtype,	\
> +		"%s(): " fmt "\n", __func__, ## args)
> 
>  #define FDPOLLERR (POLLERR | POLLHUP | POLLNVAL)
> 
> @@ -334,8 +336,8 @@ fdset_pipe_init(struct fdset *fdset)
>  	int ret;
> 
>  	if (pipe(fdset->u.pipefd) < 0) {
> -		RTE_LOG(ERR, VHOST_FDMAN,
> -			"failed to create pipe for vhost fdset\n");
> +		FDSET_LOG(ERR,
> +			"failed to create pipe for vhost fdset");
>  		return -1;
>  	}
> 
> @@ -343,9 +345,9 @@ fdset_pipe_init(struct fdset *fdset)
>  			fdset_pipe_read_cb, NULL, NULL);
> 
>  	if (ret < 0) {
> -		RTE_LOG(ERR, VHOST_FDMAN,
> -			"failed to add pipe readfd %d into vhost server fdset\n",
> -			fdset->u.readfd);
> +		FDSET_LOG(ERR,
> +			  "failed to add pipe readfd %d into vhost server fdset",
> +			  fdset->u.readfd);
> 
>  		fdset_pipe_uninit(fdset);
>  		return -1;
> diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
> index b448b6685dd2..923c7c0e10d2 100644
> --- a/lib/vhost/vhost_crypto.c
> +++ b/lib/vhost/vhost_crypto.c
> @@ -16,22 +16,18 @@
>  #define IV_OFFSET		(sizeof(struct rte_crypto_op) + \
>  				sizeof(struct rte_crypto_sym_op))
> 
> +RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);
> +
> +#define VC_LOG(level, fmt, args...)				\
> +	rte_log(RTE_LOG_ ## level, vhost_crypto_logtype,	\
> +		"%s():%u: " fmt "\n", __func__, ## args)
> +
> +#define VC_LOG_ERR(fmt, args...)	VC_LOG(ERR, fmt, ## args)
> +#define VC_LOG_INFO(fmt, args...)	VC_LOG(INFO, fmt, ## args)
> +
>  #ifdef RTE_LIBRTE_VHOST_DEBUG
> -#define VC_LOG_ERR(fmt, args...)				\
> -	RTE_LOG(ERR, USER1, "[%s] %s() line %u: " fmt "\n",	\
> -		"Vhost-Crypto",	__func__, __LINE__, ## args)
> -#define VC_LOG_INFO(fmt, args...)				\
> -	RTE_LOG(INFO, USER1, "[%s] %s() line %u: " fmt "\n",	\
> -		"Vhost-Crypto",	__func__, __LINE__, ## args)
> -
> -#define VC_LOG_DBG(fmt, args...)				\
> -	RTE_LOG(DEBUG, USER1, "[%s] %s() line %u: " fmt "\n",	\
> -		"Vhost-Crypto",	__func__, __LINE__, ## args)
> +#define VC_LOG_DBG(fmt, args...)	VC_LOG(DEBUG, fmt, ## args)
>  #else
> -#define VC_LOG_ERR(fmt, args...)				\
> -	RTE_LOG(ERR, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
> -#define VC_LOG_INFO(fmt, args...)				\
> -	RTE_LOG(INFO, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
>  #define VC_LOG_DBG(fmt, args...)
>  #endif
> 
> --
> 2.39.1

Acked-by: Chenbo Xia <chenbo.xia@intel.com> 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v3 0/5] Replace use of RTE_LOGTYPE_USER1 in library
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                   ` (4 preceding siblings ...)
  2023-02-08  4:48 ` [PATCH 5/5] ipsec: fix usage " Stephen Hemminger
@ 2023-02-10  0:22 ` Stephen Hemminger
  2023-02-10  0:22   ` [PATCH v3 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
                     ` (4 more replies)
  2023-02-10 17:15 ` [PATCH v4 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
                   ` (3 subsequent siblings)
  9 siblings, 5 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10  0:22 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

The DPDK libraries and drivers should not be using the USER1 logtype.

v3 - fix typo in ip_frag
v2 - fix some compiler warnings

Stephen Hemminger (5):
  ip_frag: use a dynamic logtype
  reorder: use a dynamic logtype
  latencystats: use dynamic logtype
  vhost: use logtype instead of RTE_LOGTYPE_USER1
  ipsec: fix usage of RTE_LOGTYPE_USER1

 drivers/crypto/ipsec_mb/ipsec_mb_ops.c |   3 +-
 lib/ip_frag/ip_frag_common.h           |  16 ++-
 lib/ip_frag/ip_frag_internal.c         | 174 ++++++++++++-------------
 lib/ip_frag/rte_ip_frag_common.c       |  13 +-
 lib/ip_frag/rte_ipv4_reassembly.c      |  14 +-
 lib/ip_frag/rte_ipv6_reassembly.c      |  59 ++++-----
 lib/latencystats/rte_latencystats.c    |  55 ++++----
 lib/reorder/rte_reorder.c              |  35 ++---
 lib/vhost/fd_man.c                     |  16 ++-
 lib/vhost/vhost_crypto.c               |  25 ++--
 10 files changed, 207 insertions(+), 203 deletions(-)

-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v3 1/5] ip_frag: use a dynamic logtype
  2023-02-10  0:22 ` [PATCH v3 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
@ 2023-02-10  0:22   ` Stephen Hemminger
  2023-02-10  0:22   ` [PATCH v3 2/5] reorder: " Stephen Hemminger
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10  0:22 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, Konstantin Ananyev, Anatoly Burakov, Thomas Monjalon

DPDK libraries should not be reusing RTE_LOGTYPE_USER1 in
lieu of doing proper logtype registration.

Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
Fixes: 416707812c03 ("ip_frag: refactor reassembly code into a proper library")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/ip_frag/ip_frag_common.h      |  16 ++-
 lib/ip_frag/ip_frag_internal.c    | 174 +++++++++++++++---------------
 lib/ip_frag/rte_ip_frag_common.c  |  13 +--
 lib/ip_frag/rte_ipv4_reassembly.c |  14 ++-
 lib/ip_frag/rte_ipv6_reassembly.c |  59 +++++-----
 5 files changed, 138 insertions(+), 138 deletions(-)

diff --git a/lib/ip_frag/ip_frag_common.h b/lib/ip_frag/ip_frag_common.h
index 9c0dbdeb6eb9..134072f3e810 100644
--- a/lib/ip_frag/ip_frag_common.h
+++ b/lib/ip_frag/ip_frag_common.h
@@ -9,8 +9,16 @@
 #include "ip_reassembly.h"
 
 /* logging macros. */
+extern int ipfrag_logtype;
+
+#define IP_FRAG_ERR(fmt, args...) \
+	rte_log(RTE_LOG_ERR, ipfrag_logtype, \
+		"%s: " fmt "\n", __func__, ## args)
+
 #ifdef RTE_LIBRTE_IP_FRAG_DEBUG
-#define	IP_FRAG_LOG(lvl, fmt, args...)	RTE_LOG(lvl, USER1, fmt, ##args)
+#define	IP_FRAG_LOG(lvl, fmt, args...)	\
+	rte_log(RTE_LOG ## lvl, ipfrag_logtype, \
+		"%s: " fmt "\n", __func__, ## args)
 #else
 #define	IP_FRAG_LOG(lvl, fmt, args...)	do {} while(0)
 #endif /* IP_FRAG_DEBUG */
@@ -111,9 +119,9 @@ ip_frag_free_immediate(struct ip_frag_pkt *fp)
 
 	for (i = 0; i < fp->last_idx; i++) {
 		if (fp->frags[i].mb != NULL) {
-			IP_FRAG_LOG(DEBUG, "%s:%d\n"
-			    "mbuf: %p, tms: %" PRIu64", key: <%" PRIx64 ", %#x>\n",
-			    __func__, __LINE__, fp->frags[i].mb, fp->start,
+			IP_FRAG_LOG(DEBUG,
+			    "mbuf: %p, tms: %" PRIu64", key: <%" PRIx64 ", %#x>",
+			    fp->frags[i].mb, fp->start,
 			    fp->key.src_dst[0], fp->key.id);
 			rte_pktmbuf_free(fp->frags[i].mb);
 			fp->frags[i].mb = NULL;
diff --git a/lib/ip_frag/ip_frag_internal.c b/lib/ip_frag/ip_frag_internal.c
index b436a4c9313b..dffaa41734c9 100644
--- a/lib/ip_frag/ip_frag_internal.c
+++ b/lib/ip_frag/ip_frag_internal.c
@@ -89,7 +89,7 @@ ipv6_frag_hash(const struct ip_frag_key *key, uint32_t *v1, uint32_t *v2)
 
 struct rte_mbuf *
 ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
-	struct rte_mbuf *mb, uint16_t ofs, uint16_t len, uint16_t more_frags)
+		struct rte_mbuf *mb, uint16_t ofs, uint16_t len, uint16_t more_frags)
 {
 	uint32_t idx;
 
@@ -98,15 +98,15 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 	/* this is the first fragment. */
 	if (ofs == 0) {
 		idx = (fp->frags[IP_FIRST_FRAG_IDX].mb == NULL) ?
-				IP_FIRST_FRAG_IDX : UINT32_MAX;
+			IP_FIRST_FRAG_IDX : UINT32_MAX;
 
-	/* this is the last fragment. */
+		/* this is the last fragment. */
 	} else if (more_frags == 0) {
 		fp->total_size = ofs + len;
 		idx = (fp->frags[IP_LAST_FRAG_IDX].mb == NULL) ?
-				IP_LAST_FRAG_IDX : UINT32_MAX;
+			IP_LAST_FRAG_IDX : UINT32_MAX;
 
-	/* this is the intermediate fragment. */
+		/* this is the intermediate fragment. */
 	} else if ((idx = fp->last_idx) < RTE_DIM(fp->frags)) {
 		fp->last_idx++;
 	}
@@ -119,31 +119,31 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 
 		/* report an error. */
 		if (fp->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, fp->key.src_dst[0], fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, fp->key.src_dst[0], fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 
 		/* free all fragments, invalidate the entry. */
 		ip_frag_free(fp, dr);
@@ -163,9 +163,9 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 	if (likely (fp->frag_size < fp->total_size)) {
 		return mb;
 
-	/* if we collected all fragments, then try to reassemble. */
+		/* if we collected all fragments, then try to reassemble. */
 	} else if (fp->frag_size == fp->total_size &&
-			fp->frags[IP_FIRST_FRAG_IDX].mb != NULL) {
+		   fp->frags[IP_FIRST_FRAG_IDX].mb != NULL) {
 		if (fp->key.key_len == IPV4_KEYLEN)
 			mb = ipv4_frag_reassemble(fp);
 		else
@@ -177,31 +177,31 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 
 		/* report an error. */
 		if (fp->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, fp->key.src_dst[0], fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, fp->key.src_dst[0], fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 
 		/* free associated resources. */
 		ip_frag_free(fp, dr);
@@ -282,8 +282,8 @@ ip_frag_find(struct rte_ip_frag_tbl *tbl, struct rte_ip_frag_death_row *dr,
 
 struct ip_frag_pkt *
 ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
-	const struct ip_frag_key *key, uint64_t tms,
-	struct ip_frag_pkt **free, struct ip_frag_pkt **stale)
+	       const struct ip_frag_key *key, uint64_t tms,
+	       struct ip_frag_pkt **free, struct ip_frag_pkt **stale)
 {
 	struct ip_frag_pkt *p1, *p2;
 	struct ip_frag_pkt *empty, *old;
@@ -310,23 +310,21 @@ ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
 
 	for (i = 0; i != assoc; i++) {
 		if (p1->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv4_frag_pkt line0: %p, index: %u from %u\n"
-			"key: <%" PRIx64 ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p1, i, assoc,
-			p1[i].key.src_dst[0], p1[i].key.id, p1[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv4_frag_pkt line0: %p, index: %u from %u\n"
+				    "key: <%" PRIx64 ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p1, i, assoc,
+				    p1[i].key.src_dst[0], p1[i].key.id, p1[i].start);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv6_frag_pkt line0: %p, index: %u from %u\n"
-			"key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p1, i, assoc,
-			IPv6_KEY_BYTES(p1[i].key.src_dst), p1[i].key.id, p1[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv6_frag_pkt line0: %p, index: %u from %u\n"
+				    "key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p1, i, assoc,
+				    IPv6_KEY_BYTES(p1[i].key.src_dst), p1[i].key.id, p1[i].start);
 
 		if (ip_frag_key_cmp(key, &p1[i].key) == 0)
 			return p1 + i;
@@ -336,23 +334,21 @@ ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
 			old = (old == NULL) ? (p1 + i) : old;
 
 		if (p2->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv4_frag_pkt line1: %p, index: %u from %u\n"
-			"key: <%" PRIx64 ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p2, i, assoc,
-			p2[i].key.src_dst[0], p2[i].key.id, p2[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv4_frag_pkt line1: %p, index: %u from %u\n"
+				    "key: <%" PRIx64 ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p2, i, assoc,
+				    p2[i].key.src_dst[0], p2[i].key.id, p2[i].start);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv6_frag_pkt line1: %p, index: %u from %u\n"
-			"key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p2, i, assoc,
-			IPv6_KEY_BYTES(p2[i].key.src_dst), p2[i].key.id, p2[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv6_frag_pkt line1: %p, index: %u from %u\n"
+				    "key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p2, i, assoc,
+				    IPv6_KEY_BYTES(p2[i].key.src_dst), p2[i].key.id, p2[i].start);
 
 		if (ip_frag_key_cmp(key, &p2[i].key) == 0)
 			return p2 + i;
diff --git a/lib/ip_frag/rte_ip_frag_common.c b/lib/ip_frag/rte_ip_frag_common.c
index c1de2e81b6d0..b8ca9e019c54 100644
--- a/lib/ip_frag/rte_ip_frag_common.c
+++ b/lib/ip_frag/rte_ip_frag_common.c
@@ -52,21 +52,20 @@ rte_ip_frag_table_create(uint32_t bucket_num, uint32_t bucket_entries,
 	if (rte_is_power_of_2(bucket_entries) == 0 ||
 			nb_entries > UINT32_MAX || nb_entries == 0 ||
 			nb_entries < max_entries) {
-		RTE_LOG(ERR, USER1, "%s: invalid input parameter\n", __func__);
+		IP_FRAG_ERR("invalid input parameter");
 		return NULL;
 	}
 
 	sz = sizeof (*tbl) + nb_entries * sizeof (tbl->pkt[0]);
 	if ((tbl = rte_zmalloc_socket(__func__, sz, RTE_CACHE_LINE_SIZE,
 			socket_id)) == NULL) {
-		RTE_LOG(ERR, USER1,
-			"%s: allocation of %zu bytes at socket %d failed do\n",
-			__func__, sz, socket_id);
+		IP_FRAG_ERR("allocation of %zu bytes at socket %d failed do",
+			sz, socket_id);
 		return NULL;
 	}
 
-	RTE_LOG(INFO, USER1, "%s: allocated of %zu bytes at socket %d\n",
-		__func__, sz, socket_id);
+	IP_FRAG_LOG(INFO, "allocated of %zu bytes at socket %d",
+		    sz, socket_id);
 
 	tbl->max_cycles = max_cycles;
 	tbl->max_entries = max_entries;
@@ -142,3 +141,5 @@ rte_ip_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl,
 		} else
 			return;
 }
+
+RTE_LOG_REGISTER_DEFAULT(ipfrag_logtype, INFO);
diff --git a/lib/ip_frag/rte_ipv4_reassembly.c b/lib/ip_frag/rte_ipv4_reassembly.c
index 4a89a5f5365a..2cdbdc4ee87f 100644
--- a/lib/ip_frag/rte_ipv4_reassembly.c
+++ b/lib/ip_frag/rte_ipv4_reassembly.c
@@ -120,12 +120,11 @@ rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 	ip_len = rte_be_to_cpu_16(ip_hdr->total_length) - mb->l3_len;
 	trim = mb->pkt_len - (ip_len + mb->l3_len + mb->l2_len);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
+	IP_FRAG_LOG(DEBUG,
 		"mbuf: %p, tms: %" PRIu64 ", key: <%" PRIx64 ", %#x>"
 		"ofs: %u, len: %d, padding: %d, flags: %#x\n"
 		"tbl: %p, max_cycles: %" PRIu64 ", entry_mask: %#x, "
-		"max_entries: %u, use_entries: %u\n\n",
-		__func__, __LINE__,
+		"max_entries: %u, use_entries: %u\n",
 		mb, tms, key.src_dst[0], key.id, ip_ofs, ip_len, trim, ip_flag,
 		tbl, tbl->max_cycles, tbl->entry_mask, tbl->max_entries,
 		tbl->use_entries);
@@ -145,11 +144,10 @@ rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 		return NULL;
 	}
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
+	IP_FRAG_LOG(DEBUG,
 		"tbl: %p, max_entries: %u, use_entries: %u\n"
 		"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
-		__func__, __LINE__,
+		", total_size: %u, frag_size: %u, last_idx: %u\n",
 		tbl, tbl->max_entries, tbl->use_entries,
 		fp, fp->key.src_dst[0], fp->key.id, fp->start,
 		fp->total_size, fp->frag_size, fp->last_idx);
@@ -159,11 +157,11 @@ rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 	mb = ip_frag_process(fp, dr, mb, ip_ofs, ip_len, ip_flag);
 	ip_frag_inuse(tbl, fp);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
+	IP_FRAG_LOG(DEBUG,
 		"mbuf: %p\n"
 		"tbl: %p, max_entries: %u, use_entries: %u\n"
 		"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
+		", total_size: %u, frag_size: %u, last_idx: %u\n",
 		__func__, __LINE__, mb,
 		tbl, tbl->max_entries, tbl->use_entries,
 		fp, fp->key.src_dst[0], fp->key.id, fp->start,
diff --git a/lib/ip_frag/rte_ipv6_reassembly.c b/lib/ip_frag/rte_ipv6_reassembly.c
index d4019e87e63a..c3e369f4ce42 100644
--- a/lib/ip_frag/rte_ipv6_reassembly.c
+++ b/lib/ip_frag/rte_ipv6_reassembly.c
@@ -135,8 +135,8 @@ ipv6_frag_reassemble(struct ip_frag_pkt *fp)
 #define FRAG_OFFSET(x) (rte_cpu_to_be_16(x) >> 3)
 struct rte_mbuf *
 rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
-	struct rte_ip_frag_death_row *dr, struct rte_mbuf *mb, uint64_t tms,
-	struct rte_ipv6_hdr *ip_hdr, struct rte_ipv6_fragment_ext *frag_hdr)
+				struct rte_ip_frag_death_row *dr, struct rte_mbuf *mb, uint64_t tms,
+				struct rte_ipv6_hdr *ip_hdr, struct rte_ipv6_fragment_ext *frag_hdr)
 {
 	struct ip_frag_pkt *fp;
 	struct ip_frag_key key;
@@ -161,17 +161,16 @@ rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 	ip_len = rte_be_to_cpu_16(ip_hdr->payload_len) - sizeof(*frag_hdr);
 	trim = mb->pkt_len - (ip_len + mb->l3_len + mb->l2_len);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-		"mbuf: %p, tms: %" PRIu64
-		", key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
-		"ofs: %u, len: %d, padding: %d, flags: %#x\n"
-		"tbl: %p, max_cycles: %" PRIu64 ", entry_mask: %#x, "
-		"max_entries: %u, use_entries: %u\n\n",
-		__func__, __LINE__,
-		mb, tms, IPv6_KEY_BYTES(key.src_dst), key.id, ip_ofs, ip_len,
-		trim, RTE_IPV6_GET_MF(frag_hdr->frag_data),
-		tbl, tbl->max_cycles, tbl->entry_mask, tbl->max_entries,
-		tbl->use_entries);
+	IP_FRAG_LOG(DEBUG,
+		    "mbuf: %p, tms: %" PRIu64
+		    ", key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
+		    "ofs: %u, len: %d, padding: %d, flags: %#x\n"
+		    "tbl: %p, max_cycles: %" PRIu64 ", entry_mask: %#x, "
+		    "max_entries: %u, use_entries: %u\n",
+		    mb, tms, IPv6_KEY_BYTES(key.src_dst), key.id, ip_ofs, ip_len,
+		    trim, RTE_IPV6_GET_MF(frag_hdr->frag_data),
+		    tbl, tbl->max_cycles, tbl->entry_mask, tbl->max_entries,
+		    tbl->use_entries);
 
 	/* check that fragment length is greater then zero. */
 	if (ip_len <= 0) {
@@ -189,30 +188,28 @@ rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 		return NULL;
 	}
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-		"tbl: %p, max_entries: %u, use_entries: %u\n"
-		"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
-		__func__, __LINE__,
-		tbl, tbl->max_entries, tbl->use_entries,
-		fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
-		fp->total_size, fp->frag_size, fp->last_idx);
+	IP_FRAG_LOG(DEBUG,
+		    "tbl: %p, max_entries: %u, use_entries: %u\n"
+		    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
+		    ", total_size: %u, frag_size: %u, last_idx: %u\n",
+		    tbl, tbl->max_entries, tbl->use_entries,
+		    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
+		    fp->total_size, fp->frag_size, fp->last_idx);
 
 
 	/* process the fragmented packet. */
 	mb = ip_frag_process(fp, dr, mb, ip_ofs, ip_len,
-			MORE_FRAGS(frag_hdr->frag_data));
+			     MORE_FRAGS(frag_hdr->frag_data));
 	ip_frag_inuse(tbl, fp);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-		"mbuf: %p\n"
-		"tbl: %p, max_entries: %u, use_entries: %u\n"
-		"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
-		__func__, __LINE__, mb,
-		tbl, tbl->max_entries, tbl->use_entries,
-		fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
-		fp->total_size, fp->frag_size, fp->last_idx);
+	IP_FRAG_LOG(DEBUG,
+		    "mbuf: %p\n"
+		    "tbl: %p, max_entries: %u, use_entries: %u\n"
+		    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
+		    ", total_size: %u, frag_size: %u, last_idx: %u\n",
+		    mb, tbl, tbl->max_entries, tbl->use_entries,
+		    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
+		    fp->total_size, fp->frag_size, fp->last_idx);
 
 	return mb;
 }
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v3 2/5] reorder: use a dynamic logtype
  2023-02-10  0:22 ` [PATCH v3 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
  2023-02-10  0:22   ` [PATCH v3 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
@ 2023-02-10  0:22   ` Stephen Hemminger
  2023-02-10  0:22   ` [PATCH v3 3/5] latencystats: use " Stephen Hemminger
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10  0:22 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, sergio.gonzalez.monroy, Reshma Pattan,
	Neil Horman, Richardson Bruce, Declan Doherty

Libraries should not be reusing RTE_LOGTYPE_USER1 instead
of doing proper logtype registration.

Fixes: b70b56032bff ("reorder: new library")
Cc: sergio.gonzalez.monroy@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/reorder/rte_reorder.c | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/lib/reorder/rte_reorder.c b/lib/reorder/rte_reorder.c
index 385ee479da42..c9ae42e71783 100644
--- a/lib/reorder/rte_reorder.c
+++ b/lib/reorder/rte_reorder.c
@@ -27,7 +27,11 @@ EAL_REGISTER_TAILQ(rte_reorder_tailq)
 #define RTE_REORDER_NAMESIZE 32
 
 /* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_REORDER	RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_DEFAULT(reorder_logtype, INFO);
+
+#define REORDER_LOG(level, fmt, args...)		\
+	rte_log(RTE_LOG_ ## level, reorder_logtype,	\
+		"%s(): " fmt "\n", __func__, ##args)
 
 #define RTE_REORDER_SEQN_DYNFIELD_NAME "rte_reorder_seqn_dynfield"
 int rte_reorder_seqn_dynfield_offset = -1;
@@ -62,26 +66,25 @@ rte_reorder_init(struct rte_reorder_buffer *b, unsigned int bufsize,
 					(2 * size * sizeof(struct rte_mbuf *));
 
 	if (b == NULL) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer parameter:"
-					" NULL\n");
+		REORDER_LOG(ERR, "Invalid reorder buffer parameter: NULL");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (!rte_is_power_of_2(size)) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer size"
-				" - Not a power of 2\n");
+		REORDER_LOG(ERR,
+			    "Invalid reorder buffer size - Not a power of 2");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (name == NULL) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer name ptr:"
-					" NULL\n");
+		REORDER_LOG(ERR, "Invalid reorder buffer name ptr: NULL");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (bufsize < min_bufsize) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer memory size: %u, "
-			"minimum required: %u\n", bufsize, min_bufsize);
+		REORDER_LOG(ERR,
+			    "Invalid reorder buffer memory size: %u, minimum required: %u",
+			    bufsize, min_bufsize);
 		rte_errno = EINVAL;
 		return NULL;
 	}
@@ -116,14 +119,13 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 
 	/* Check user arguments. */
 	if (!rte_is_power_of_2(size)) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer size"
-				" - Not a power of 2\n");
+		REORDER_LOG(ERR,
+			    "Invalid reorder buffer size - Not a power of 2");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (name == NULL) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer name ptr:"
-					" NULL\n");
+		REORDER_LOG(ERR, "Invalid reorder buffer name ptr: NULL");
 		rte_errno = EINVAL;
 		return NULL;
 	}
@@ -131,7 +133,8 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 	rte_reorder_seqn_dynfield_offset =
 		rte_mbuf_dynfield_register(&reorder_seqn_dynfield_desc);
 	if (rte_reorder_seqn_dynfield_offset < 0) {
-		RTE_LOG(ERR, REORDER, "Failed to register mbuf field for reorder sequence number\n");
+		REORDER_LOG(ERR,
+			    "Failed to register mbuf field for reorder sequence number");
 		rte_errno = ENOMEM;
 		return NULL;
 	}
@@ -150,7 +153,7 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 	/* allocate tailq entry */
 	te = rte_zmalloc("REORDER_TAILQ_ENTRY", sizeof(*te), 0);
 	if (te == NULL) {
-		RTE_LOG(ERR, REORDER, "Failed to allocate tailq entry\n");
+		REORDER_LOG(ERR, "Failed to allocate tailq entry");
 		rte_errno = ENOMEM;
 		b = NULL;
 		goto exit;
@@ -159,7 +162,7 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 	/* Allocate memory to store the reorder buffer structure. */
 	b = rte_zmalloc_socket("REORDER_BUFFER", bufsize, 0, socket_id);
 	if (b == NULL) {
-		RTE_LOG(ERR, REORDER, "Memzone allocation failed\n");
+		REORDER_LOG(ERR, "Memzone allocation failed");
 		rte_errno = ENOMEM;
 		rte_free(te);
 	} else {
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v3 3/5] latencystats: use dynamic logtype
  2023-02-10  0:22 ` [PATCH v3 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
  2023-02-10  0:22   ` [PATCH v3 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
  2023-02-10  0:22   ` [PATCH v3 2/5] reorder: " Stephen Hemminger
@ 2023-02-10  0:22   ` Stephen Hemminger
  2023-02-10  0:22   ` [PATCH v3 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
  2023-02-10  0:22   ` [PATCH v3 5/5] ipsec: fix usage " Stephen Hemminger
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10  0:22 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, reshma.pattan, Remy Horton, Harry van Haaren

Libraries should not reuse RTE_LOGTYPE_USER1 for their
logging. Instead they should register their own type.

Fixes: 5cd3cac9ed22 ("latency: added new library for latency stats")
Cc: reshma.pattan@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/latencystats/rte_latencystats.c | 55 +++++++++++++++--------------
 1 file changed, 28 insertions(+), 27 deletions(-)

diff --git a/lib/latencystats/rte_latencystats.c b/lib/latencystats/rte_latencystats.c
index 8985a377db4e..3a4c47e2b34a 100644
--- a/lib/latencystats/rte_latencystats.c
+++ b/lib/latencystats/rte_latencystats.c
@@ -26,7 +26,10 @@ latencystat_cycles_per_ns(void)
 }
 
 /* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_LATENCY_STATS RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_DEFAULT(latencystat_logtype, INFO);
+#define LATENCYSTATS_LOG(level, fmt, args...)		\
+	rte_log(RTE_LOG_ ## level, latencystat_logtype,	\
+		"%s(): " fmt "\n", __func__, ## args)
 
 static uint64_t timestamp_dynflag;
 static int timestamp_dynfield_offset = -1;
@@ -95,7 +98,7 @@ rte_latencystats_update(void)
 					latency_stats_index,
 					values, NUM_LATENCY_STATS);
 	if (ret < 0)
-		RTE_LOG(INFO, LATENCY_STATS, "Failed to push the stats\n");
+		LATENCYSTATS_LOG(INFO, "Failed to push the stats");
 
 	return ret;
 }
@@ -227,8 +230,7 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 	mz = rte_memzone_reserve(MZ_RTE_LATENCY_STATS, sizeof(*glob_stats),
 					rte_socket_id(), flags);
 	if (mz == NULL) {
-		RTE_LOG(ERR, LATENCY_STATS, "Cannot reserve memory: %s:%d\n",
-			__func__, __LINE__);
+		LATENCYSTATS_LOG(ERR, "Cannot reserve memory");
 		return -ENOMEM;
 	}
 
@@ -243,8 +245,7 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 	latency_stats_index = rte_metrics_reg_names(ptr_strings,
 							NUM_LATENCY_STATS);
 	if (latency_stats_index < 0) {
-		RTE_LOG(DEBUG, LATENCY_STATS,
-			"Failed to register latency stats names\n");
+		LATENCYSTATS_LOG(ERR, "Failed to register latency stats names");
 		return -1;
 	}
 
@@ -252,8 +253,8 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 	ret = rte_mbuf_dyn_rx_timestamp_register(&timestamp_dynfield_offset,
 			&timestamp_dynflag);
 	if (ret != 0) {
-		RTE_LOG(ERR, LATENCY_STATS,
-			"Cannot register mbuf field/flag for timestamp\n");
+		LATENCYSTATS_LOG(ERR,
+				 "Cannot register mbuf field/flag for timestamp");
 		return -rte_errno;
 	}
 
@@ -263,9 +264,9 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 
 		ret = rte_eth_dev_info_get(pid, &dev_info);
 		if (ret != 0) {
-			RTE_LOG(INFO, LATENCY_STATS,
-				"Error during getting device (port %u) info: %s\n",
-				pid, strerror(-ret));
+			LATENCYSTATS_LOG(INFO,
+					 "Error during getting device (port %u) info: %s",
+					 pid, strerror(-ret));
 
 			continue;
 		}
@@ -275,18 +276,18 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 			cbs->cb = rte_eth_add_first_rx_callback(pid, qid,
 					add_time_stamps, user_cb);
 			if (!cbs->cb)
-				RTE_LOG(INFO, LATENCY_STATS, "Failed to "
-					"register Rx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "Failed to register Rx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 		for (qid = 0; qid < dev_info.nb_tx_queues; qid++) {
 			cbs = &tx_cbs[pid][qid];
 			cbs->cb =  rte_eth_add_tx_callback(pid, qid,
 					calc_latency, user_cb);
 			if (!cbs->cb)
-				RTE_LOG(INFO, LATENCY_STATS, "Failed to "
-					"register Tx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "Failed to register Tx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 	}
 	return 0;
@@ -307,8 +308,8 @@ rte_latencystats_uninit(void)
 
 		ret = rte_eth_dev_info_get(pid, &dev_info);
 		if (ret != 0) {
-			RTE_LOG(INFO, LATENCY_STATS,
-				"Error during getting device (port %u) info: %s\n",
+			LATENCYSTATS_LOG(INFO,
+				"Error during getting device (port %u) info: %s",
 				pid, strerror(-ret));
 
 			continue;
@@ -318,17 +319,17 @@ rte_latencystats_uninit(void)
 			cbs = &rx_cbs[pid][qid];
 			ret = rte_eth_remove_rx_callback(pid, qid, cbs->cb);
 			if (ret)
-				RTE_LOG(INFO, LATENCY_STATS, "failed to "
-					"remove Rx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "failed to remove Rx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 		for (qid = 0; qid < dev_info.nb_tx_queues; qid++) {
 			cbs = &tx_cbs[pid][qid];
 			ret = rte_eth_remove_tx_callback(pid, qid, cbs->cb);
 			if (ret)
-				RTE_LOG(INFO, LATENCY_STATS, "failed to "
-					"remove Tx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "failed to remove Tx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 	}
 
@@ -365,8 +366,8 @@ rte_latencystats_get(struct rte_metric_value *values, uint16_t size)
 		const struct rte_memzone *mz;
 		mz = rte_memzone_lookup(MZ_RTE_LATENCY_STATS);
 		if (mz == NULL) {
-			RTE_LOG(ERR, LATENCY_STATS,
-				"Latency stats memzone not found\n");
+			LATENCYSTATS_LOG(ERR,
+					 "Latency stats memzone not found");
 			return -ENOMEM;
 		}
 		glob_stats =  mz->addr;
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v3 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1
  2023-02-10  0:22 ` [PATCH v3 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
                     ` (2 preceding siblings ...)
  2023-02-10  0:22   ` [PATCH v3 3/5] latencystats: use " Stephen Hemminger
@ 2023-02-10  0:22   ` Stephen Hemminger
  2023-02-10  9:58     ` Maxime Coquelin
  2023-02-10  0:22   ` [PATCH v3 5/5] ipsec: fix usage " Stephen Hemminger
  4 siblings, 1 reply; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10  0:22 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Chenbo Xia, Maxime Coquelin

Fix instances of USER1 logtype in fdset and crypto
sections.

Acked-by: Chenbo Xia <chenbo.xia@intel.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/vhost/fd_man.c       | 16 +++++++++-------
 lib/vhost/vhost_crypto.c | 25 +++++++++++--------------
 2 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/lib/vhost/fd_man.c b/lib/vhost/fd_man.c
index 1876fada3354..172f7dc03ab2 100644
--- a/lib/vhost/fd_man.c
+++ b/lib/vhost/fd_man.c
@@ -10,8 +10,10 @@
 
 #include "fd_man.h"
 
-
-#define RTE_LOGTYPE_VHOST_FDMAN RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_SUFFIX(vhost_fdset_logtype, fdset, INFO);
+#define FDSET_LOG(level, fmt, args...)		\
+	rte_log(RTE_LOG_ ## level, vhost_fdset_logtype,	\
+		"%s(): " fmt "\n", __func__, ## args)
 
 #define FDPOLLERR (POLLERR | POLLHUP | POLLNVAL)
 
@@ -334,8 +336,8 @@ fdset_pipe_init(struct fdset *fdset)
 	int ret;
 
 	if (pipe(fdset->u.pipefd) < 0) {
-		RTE_LOG(ERR, VHOST_FDMAN,
-			"failed to create pipe for vhost fdset\n");
+		FDSET_LOG(ERR,
+			"failed to create pipe for vhost fdset");
 		return -1;
 	}
 
@@ -343,9 +345,9 @@ fdset_pipe_init(struct fdset *fdset)
 			fdset_pipe_read_cb, NULL, NULL);
 
 	if (ret < 0) {
-		RTE_LOG(ERR, VHOST_FDMAN,
-			"failed to add pipe readfd %d into vhost server fdset\n",
-			fdset->u.readfd);
+		FDSET_LOG(ERR,
+			  "failed to add pipe readfd %d into vhost server fdset",
+			  fdset->u.readfd);
 
 		fdset_pipe_uninit(fdset);
 		return -1;
diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
index f02bf865c349..3be46614c22a 100644
--- a/lib/vhost/vhost_crypto.c
+++ b/lib/vhost/vhost_crypto.c
@@ -4,6 +4,7 @@
 #include <rte_malloc.h>
 #include <rte_hash.h>
 #include <rte_jhash.h>
+#include <rte_log.h>
 #include <rte_mbuf.h>
 #include <rte_cryptodev.h>
 
@@ -16,22 +17,18 @@
 #define IV_OFFSET		(sizeof(struct rte_crypto_op) + \
 				sizeof(struct rte_crypto_sym_op))
 
+RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);
+
+#define VC_LOG(level, fmt, args...)				\
+	rte_log(RTE_LOG_ ## level, vhost_crypto_logtype,	\
+		"%s():%u: " fmt "\n", __func__, __LINE__, ## args)
+
+#define VC_LOG_ERR(fmt, args...)	VC_LOG(ERR, fmt, ## args)
+#define VC_LOG_INFO(fmt, args...)	VC_LOG(INFO, fmt, ## args)
+
 #ifdef RTE_LIBRTE_VHOST_DEBUG
-#define VC_LOG_ERR(fmt, args...)				\
-	RTE_LOG(ERR, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
-#define VC_LOG_INFO(fmt, args...)				\
-	RTE_LOG(INFO, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
-
-#define VC_LOG_DBG(fmt, args...)				\
-	RTE_LOG(DEBUG, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
+#define VC_LOG_DBG(fmt, args...)	VC_LOG(DEBUG, fmt, ## args)
 #else
-#define VC_LOG_ERR(fmt, args...)				\
-	RTE_LOG(ERR, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
-#define VC_LOG_INFO(fmt, args...)				\
-	RTE_LOG(INFO, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
 #define VC_LOG_DBG(fmt, args...)
 #endif
 
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v3 5/5] ipsec: fix usage of RTE_LOGTYPE_USER1
  2023-02-10  0:22 ` [PATCH v3 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
                     ` (3 preceding siblings ...)
  2023-02-10  0:22   ` [PATCH v3 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
@ 2023-02-10  0:22   ` Stephen Hemminger
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10  0:22 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, kai.ji, Pablo de Lara, Arkadiusz Kusztal

There already is a logtype in this driver, use it!

Fixes: b35848bc01f6 ("crypto/ipsec_mb: add multi-process IPC request handler")
Cc: kai.ji@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
index 3e52f9567401..e9eb0d15b794 100644
--- a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
+++ b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
@@ -7,6 +7,7 @@
 
 #include <rte_common.h>
 #include <rte_malloc.h>
+#include <rte_log.h>
 
 #include "ipsec_mb_private.h"
 
@@ -125,7 +126,7 @@ ipsec_mb_secondary_qp_op(int dev_id, int qp_id,
 	qp_req_msg.num_fds = 0;
 	ret = rte_mp_request_sync(&qp_req_msg, &qp_resp, &ts);
 	if (ret) {
-		RTE_LOG(ERR, USER1, "Create MR request to primary process failed.");
+		IPSEC_MB_LOG(ERR, "Create MR request to primary process failed.");
 		return -1;
 	}
 	qp_resp_msg = &qp_resp.msgs[0];
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v3 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1
  2023-02-10  0:22   ` [PATCH v3 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
@ 2023-02-10  9:58     ` Maxime Coquelin
  0 siblings, 0 replies; 50+ messages in thread
From: Maxime Coquelin @ 2023-02-10  9:58 UTC (permalink / raw)
  To: Stephen Hemminger, dev; +Cc: Chenbo Xia



On 2/10/23 01:22, Stephen Hemminger wrote:
> Fix instances of USER1 logtype in fdset and crypto
> sections.
> 
> Acked-by: Chenbo Xia <chenbo.xia@intel.com>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>   lib/vhost/fd_man.c       | 16 +++++++++-------
>   lib/vhost/vhost_crypto.c | 25 +++++++++++--------------
>   2 files changed, 20 insertions(+), 21 deletions(-)
> 

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v4 0/5] Replace use of RTE_LOGTYPE_USER1 in library
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                   ` (5 preceding siblings ...)
  2023-02-10  0:22 ` [PATCH v3 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
@ 2023-02-10 17:15 ` Stephen Hemminger
  2023-02-10 17:15   ` [PATCH v4 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
                     ` (4 more replies)
  2023-02-12 16:14 ` [PATCH 0/5] Replace us of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                   ` (2 subsequent siblings)
  9 siblings, 5 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10 17:15 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

The DPDK libraries and drivers should not be using the USER1 logtype.

v4 - fix build compile error with debug enabled
v3 - fix typo in ip_frag
v2 - fix some compiler warnings

Stephen Hemminger (5):
  ip_frag: use a dynamic logtype
  reorder: use a dynamic logtype
  latencystats: use dynamic logtype
  vhost: use logtype instead of RTE_LOGTYPE_USER1
  ipsec: fix usage of RTE_LOGTYPE_USER1

 drivers/crypto/ipsec_mb/ipsec_mb_ops.c |   3 +-
 lib/ip_frag/ip_frag_common.h           |  16 ++-
 lib/ip_frag/ip_frag_internal.c         | 174 ++++++++++++-------------
 lib/ip_frag/rte_ip_frag_common.c       |  13 +-
 lib/ip_frag/rte_ipv4_reassembly.c      |  14 +-
 lib/ip_frag/rte_ipv6_reassembly.c      |  59 ++++-----
 lib/latencystats/rte_latencystats.c    |  55 ++++----
 lib/reorder/rte_reorder.c              |  35 ++---
 lib/vhost/fd_man.c                     |  16 ++-
 lib/vhost/vhost_crypto.c               |  25 ++--
 10 files changed, 207 insertions(+), 203 deletions(-)

-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v4 1/5] ip_frag: use a dynamic logtype
  2023-02-10 17:15 ` [PATCH v4 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
@ 2023-02-10 17:15   ` Stephen Hemminger
  2023-02-10 17:15   ` [PATCH v4 2/5] reorder: " Stephen Hemminger
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10 17:15 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, Konstantin Ananyev, Anatoly Burakov, Thomas Monjalon

DPDK libraries should not be reusing RTE_LOGTYPE_USER1 in
lieu of doing proper logtype registration.

Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
Fixes: 416707812c03 ("ip_frag: refactor reassembly code into a proper library")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/ip_frag/ip_frag_common.h      |  16 ++-
 lib/ip_frag/ip_frag_internal.c    | 174 +++++++++++++++---------------
 lib/ip_frag/rte_ip_frag_common.c  |  13 +--
 lib/ip_frag/rte_ipv4_reassembly.c |  14 ++-
 lib/ip_frag/rte_ipv6_reassembly.c |  59 +++++-----
 5 files changed, 138 insertions(+), 138 deletions(-)

diff --git a/lib/ip_frag/ip_frag_common.h b/lib/ip_frag/ip_frag_common.h
index 9c0dbdeb6eb9..a20510a8345d 100644
--- a/lib/ip_frag/ip_frag_common.h
+++ b/lib/ip_frag/ip_frag_common.h
@@ -9,8 +9,16 @@
 #include "ip_reassembly.h"
 
 /* logging macros. */
+extern int ipfrag_logtype;
+
+#define IP_FRAG_ERR(fmt, args...) \
+	rte_log(RTE_LOG_ERR, ipfrag_logtype, \
+		"%s: " fmt "\n", __func__, ## args)
+
 #ifdef RTE_LIBRTE_IP_FRAG_DEBUG
-#define	IP_FRAG_LOG(lvl, fmt, args...)	RTE_LOG(lvl, USER1, fmt, ##args)
+#define	IP_FRAG_LOG(lvl, fmt, args...)	\
+	rte_log(RTE_LOG_ ## lvl, ipfrag_logtype, \
+		"%s: " fmt "\n", __func__, ## args)
 #else
 #define	IP_FRAG_LOG(lvl, fmt, args...)	do {} while(0)
 #endif /* IP_FRAG_DEBUG */
@@ -111,9 +119,9 @@ ip_frag_free_immediate(struct ip_frag_pkt *fp)
 
 	for (i = 0; i < fp->last_idx; i++) {
 		if (fp->frags[i].mb != NULL) {
-			IP_FRAG_LOG(DEBUG, "%s:%d\n"
-			    "mbuf: %p, tms: %" PRIu64", key: <%" PRIx64 ", %#x>\n",
-			    __func__, __LINE__, fp->frags[i].mb, fp->start,
+			IP_FRAG_LOG(DEBUG,
+			    "mbuf: %p, tms: %" PRIu64", key: <%" PRIx64 ", %#x>",
+			    fp->frags[i].mb, fp->start,
 			    fp->key.src_dst[0], fp->key.id);
 			rte_pktmbuf_free(fp->frags[i].mb);
 			fp->frags[i].mb = NULL;
diff --git a/lib/ip_frag/ip_frag_internal.c b/lib/ip_frag/ip_frag_internal.c
index b436a4c9313b..dffaa41734c9 100644
--- a/lib/ip_frag/ip_frag_internal.c
+++ b/lib/ip_frag/ip_frag_internal.c
@@ -89,7 +89,7 @@ ipv6_frag_hash(const struct ip_frag_key *key, uint32_t *v1, uint32_t *v2)
 
 struct rte_mbuf *
 ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
-	struct rte_mbuf *mb, uint16_t ofs, uint16_t len, uint16_t more_frags)
+		struct rte_mbuf *mb, uint16_t ofs, uint16_t len, uint16_t more_frags)
 {
 	uint32_t idx;
 
@@ -98,15 +98,15 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 	/* this is the first fragment. */
 	if (ofs == 0) {
 		idx = (fp->frags[IP_FIRST_FRAG_IDX].mb == NULL) ?
-				IP_FIRST_FRAG_IDX : UINT32_MAX;
+			IP_FIRST_FRAG_IDX : UINT32_MAX;
 
-	/* this is the last fragment. */
+		/* this is the last fragment. */
 	} else if (more_frags == 0) {
 		fp->total_size = ofs + len;
 		idx = (fp->frags[IP_LAST_FRAG_IDX].mb == NULL) ?
-				IP_LAST_FRAG_IDX : UINT32_MAX;
+			IP_LAST_FRAG_IDX : UINT32_MAX;
 
-	/* this is the intermediate fragment. */
+		/* this is the intermediate fragment. */
 	} else if ((idx = fp->last_idx) < RTE_DIM(fp->frags)) {
 		fp->last_idx++;
 	}
@@ -119,31 +119,31 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 
 		/* report an error. */
 		if (fp->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, fp->key.src_dst[0], fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, fp->key.src_dst[0], fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 
 		/* free all fragments, invalidate the entry. */
 		ip_frag_free(fp, dr);
@@ -163,9 +163,9 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 	if (likely (fp->frag_size < fp->total_size)) {
 		return mb;
 
-	/* if we collected all fragments, then try to reassemble. */
+		/* if we collected all fragments, then try to reassemble. */
 	} else if (fp->frag_size == fp->total_size &&
-			fp->frags[IP_FIRST_FRAG_IDX].mb != NULL) {
+		   fp->frags[IP_FIRST_FRAG_IDX].mb != NULL) {
 		if (fp->key.key_len == IPV4_KEYLEN)
 			mb = ipv4_frag_reassemble(fp);
 		else
@@ -177,31 +177,31 @@ ip_frag_process(struct ip_frag_pkt *fp, struct rte_ip_frag_death_row *dr,
 
 		/* report an error. */
 		if (fp->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, fp->key.src_dst[0], fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, fp->key.src_dst[0], fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d invalid fragmented packet:\n"
-				"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
-				"total_size: %u, frag_size: %u, last_idx: %u\n"
-				"first fragment: ofs: %u, len: %u\n"
-				"last fragment: ofs: %u, len: %u\n\n",
-				__func__, __LINE__,
-				fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
-				fp->total_size, fp->frag_size, fp->last_idx,
-				fp->frags[IP_FIRST_FRAG_IDX].ofs,
-				fp->frags[IP_FIRST_FRAG_IDX].len,
-				fp->frags[IP_LAST_FRAG_IDX].ofs,
-				fp->frags[IP_LAST_FRAG_IDX].len);
+			IP_FRAG_LOG(DEBUG,
+				    "invalid fragmented packet:\n"
+				    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
+				    "total_size: %u, frag_size: %u, last_idx: %u\n"
+				    "first fragment: ofs: %u, len: %u\n"
+				    "last fragment: ofs: %u, len: %u\n",
+				    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id,
+				    fp->total_size, fp->frag_size, fp->last_idx,
+				    fp->frags[IP_FIRST_FRAG_IDX].ofs,
+				    fp->frags[IP_FIRST_FRAG_IDX].len,
+				    fp->frags[IP_LAST_FRAG_IDX].ofs,
+				    fp->frags[IP_LAST_FRAG_IDX].len);
 
 		/* free associated resources. */
 		ip_frag_free(fp, dr);
@@ -282,8 +282,8 @@ ip_frag_find(struct rte_ip_frag_tbl *tbl, struct rte_ip_frag_death_row *dr,
 
 struct ip_frag_pkt *
 ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
-	const struct ip_frag_key *key, uint64_t tms,
-	struct ip_frag_pkt **free, struct ip_frag_pkt **stale)
+	       const struct ip_frag_key *key, uint64_t tms,
+	       struct ip_frag_pkt **free, struct ip_frag_pkt **stale)
 {
 	struct ip_frag_pkt *p1, *p2;
 	struct ip_frag_pkt *empty, *old;
@@ -310,23 +310,21 @@ ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
 
 	for (i = 0; i != assoc; i++) {
 		if (p1->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv4_frag_pkt line0: %p, index: %u from %u\n"
-			"key: <%" PRIx64 ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p1, i, assoc,
-			p1[i].key.src_dst[0], p1[i].key.id, p1[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv4_frag_pkt line0: %p, index: %u from %u\n"
+				    "key: <%" PRIx64 ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p1, i, assoc,
+				    p1[i].key.src_dst[0], p1[i].key.id, p1[i].start);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv6_frag_pkt line0: %p, index: %u from %u\n"
-			"key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p1, i, assoc,
-			IPv6_KEY_BYTES(p1[i].key.src_dst), p1[i].key.id, p1[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv6_frag_pkt line0: %p, index: %u from %u\n"
+				    "key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p1, i, assoc,
+				    IPv6_KEY_BYTES(p1[i].key.src_dst), p1[i].key.id, p1[i].start);
 
 		if (ip_frag_key_cmp(key, &p1[i].key) == 0)
 			return p1 + i;
@@ -336,23 +334,21 @@ ip_frag_lookup(struct rte_ip_frag_tbl *tbl,
 			old = (old == NULL) ? (p1 + i) : old;
 
 		if (p2->key.key_len == IPV4_KEYLEN)
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv4_frag_pkt line1: %p, index: %u from %u\n"
-			"key: <%" PRIx64 ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p2, i, assoc,
-			p2[i].key.src_dst[0], p2[i].key.id, p2[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv4_frag_pkt line1: %p, index: %u from %u\n"
+				    "key: <%" PRIx64 ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p2, i, assoc,
+				    p2[i].key.src_dst[0], p2[i].key.id, p2[i].start);
 		else
-			IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-					"tbl: %p, max_entries: %u, use_entries: %u\n"
-					"ipv6_frag_pkt line1: %p, index: %u from %u\n"
-			"key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64 "\n",
-					__func__, __LINE__,
-					tbl, tbl->max_entries, tbl->use_entries,
-					p2, i, assoc,
-			IPv6_KEY_BYTES(p2[i].key.src_dst), p2[i].key.id, p2[i].start);
+			IP_FRAG_LOG(DEBUG,
+				    "tbl: %p, max_entries: %u, use_entries: %u\n"
+				    "ipv6_frag_pkt line1: %p, index: %u from %u\n"
+				    "key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64,
+				    tbl, tbl->max_entries, tbl->use_entries,
+				    p2, i, assoc,
+				    IPv6_KEY_BYTES(p2[i].key.src_dst), p2[i].key.id, p2[i].start);
 
 		if (ip_frag_key_cmp(key, &p2[i].key) == 0)
 			return p2 + i;
diff --git a/lib/ip_frag/rte_ip_frag_common.c b/lib/ip_frag/rte_ip_frag_common.c
index c1de2e81b6d0..b8ca9e019c54 100644
--- a/lib/ip_frag/rte_ip_frag_common.c
+++ b/lib/ip_frag/rte_ip_frag_common.c
@@ -52,21 +52,20 @@ rte_ip_frag_table_create(uint32_t bucket_num, uint32_t bucket_entries,
 	if (rte_is_power_of_2(bucket_entries) == 0 ||
 			nb_entries > UINT32_MAX || nb_entries == 0 ||
 			nb_entries < max_entries) {
-		RTE_LOG(ERR, USER1, "%s: invalid input parameter\n", __func__);
+		IP_FRAG_ERR("invalid input parameter");
 		return NULL;
 	}
 
 	sz = sizeof (*tbl) + nb_entries * sizeof (tbl->pkt[0]);
 	if ((tbl = rte_zmalloc_socket(__func__, sz, RTE_CACHE_LINE_SIZE,
 			socket_id)) == NULL) {
-		RTE_LOG(ERR, USER1,
-			"%s: allocation of %zu bytes at socket %d failed do\n",
-			__func__, sz, socket_id);
+		IP_FRAG_ERR("allocation of %zu bytes at socket %d failed do",
+			sz, socket_id);
 		return NULL;
 	}
 
-	RTE_LOG(INFO, USER1, "%s: allocated of %zu bytes at socket %d\n",
-		__func__, sz, socket_id);
+	IP_FRAG_LOG(INFO, "allocated of %zu bytes at socket %d",
+		    sz, socket_id);
 
 	tbl->max_cycles = max_cycles;
 	tbl->max_entries = max_entries;
@@ -142,3 +141,5 @@ rte_ip_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl,
 		} else
 			return;
 }
+
+RTE_LOG_REGISTER_DEFAULT(ipfrag_logtype, INFO);
diff --git a/lib/ip_frag/rte_ipv4_reassembly.c b/lib/ip_frag/rte_ipv4_reassembly.c
index 4a89a5f5365a..2cdbdc4ee87f 100644
--- a/lib/ip_frag/rte_ipv4_reassembly.c
+++ b/lib/ip_frag/rte_ipv4_reassembly.c
@@ -120,12 +120,11 @@ rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 	ip_len = rte_be_to_cpu_16(ip_hdr->total_length) - mb->l3_len;
 	trim = mb->pkt_len - (ip_len + mb->l3_len + mb->l2_len);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
+	IP_FRAG_LOG(DEBUG,
 		"mbuf: %p, tms: %" PRIu64 ", key: <%" PRIx64 ", %#x>"
 		"ofs: %u, len: %d, padding: %d, flags: %#x\n"
 		"tbl: %p, max_cycles: %" PRIu64 ", entry_mask: %#x, "
-		"max_entries: %u, use_entries: %u\n\n",
-		__func__, __LINE__,
+		"max_entries: %u, use_entries: %u\n",
 		mb, tms, key.src_dst[0], key.id, ip_ofs, ip_len, trim, ip_flag,
 		tbl, tbl->max_cycles, tbl->entry_mask, tbl->max_entries,
 		tbl->use_entries);
@@ -145,11 +144,10 @@ rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 		return NULL;
 	}
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
+	IP_FRAG_LOG(DEBUG,
 		"tbl: %p, max_entries: %u, use_entries: %u\n"
 		"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
-		__func__, __LINE__,
+		", total_size: %u, frag_size: %u, last_idx: %u\n",
 		tbl, tbl->max_entries, tbl->use_entries,
 		fp, fp->key.src_dst[0], fp->key.id, fp->start,
 		fp->total_size, fp->frag_size, fp->last_idx);
@@ -159,11 +157,11 @@ rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 	mb = ip_frag_process(fp, dr, mb, ip_ofs, ip_len, ip_flag);
 	ip_frag_inuse(tbl, fp);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
+	IP_FRAG_LOG(DEBUG,
 		"mbuf: %p\n"
 		"tbl: %p, max_entries: %u, use_entries: %u\n"
 		"ipv4_frag_pkt: %p, key: <%" PRIx64 ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
+		", total_size: %u, frag_size: %u, last_idx: %u\n",
 		__func__, __LINE__, mb,
 		tbl, tbl->max_entries, tbl->use_entries,
 		fp, fp->key.src_dst[0], fp->key.id, fp->start,
diff --git a/lib/ip_frag/rte_ipv6_reassembly.c b/lib/ip_frag/rte_ipv6_reassembly.c
index d4019e87e63a..c3e369f4ce42 100644
--- a/lib/ip_frag/rte_ipv6_reassembly.c
+++ b/lib/ip_frag/rte_ipv6_reassembly.c
@@ -135,8 +135,8 @@ ipv6_frag_reassemble(struct ip_frag_pkt *fp)
 #define FRAG_OFFSET(x) (rte_cpu_to_be_16(x) >> 3)
 struct rte_mbuf *
 rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
-	struct rte_ip_frag_death_row *dr, struct rte_mbuf *mb, uint64_t tms,
-	struct rte_ipv6_hdr *ip_hdr, struct rte_ipv6_fragment_ext *frag_hdr)
+				struct rte_ip_frag_death_row *dr, struct rte_mbuf *mb, uint64_t tms,
+				struct rte_ipv6_hdr *ip_hdr, struct rte_ipv6_fragment_ext *frag_hdr)
 {
 	struct ip_frag_pkt *fp;
 	struct ip_frag_key key;
@@ -161,17 +161,16 @@ rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 	ip_len = rte_be_to_cpu_16(ip_hdr->payload_len) - sizeof(*frag_hdr);
 	trim = mb->pkt_len - (ip_len + mb->l3_len + mb->l2_len);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-		"mbuf: %p, tms: %" PRIu64
-		", key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
-		"ofs: %u, len: %d, padding: %d, flags: %#x\n"
-		"tbl: %p, max_cycles: %" PRIu64 ", entry_mask: %#x, "
-		"max_entries: %u, use_entries: %u\n\n",
-		__func__, __LINE__,
-		mb, tms, IPv6_KEY_BYTES(key.src_dst), key.id, ip_ofs, ip_len,
-		trim, RTE_IPV6_GET_MF(frag_hdr->frag_data),
-		tbl, tbl->max_cycles, tbl->entry_mask, tbl->max_entries,
-		tbl->use_entries);
+	IP_FRAG_LOG(DEBUG,
+		    "mbuf: %p, tms: %" PRIu64
+		    ", key: <" IPv6_KEY_BYTES_FMT ", %#x>, "
+		    "ofs: %u, len: %d, padding: %d, flags: %#x\n"
+		    "tbl: %p, max_cycles: %" PRIu64 ", entry_mask: %#x, "
+		    "max_entries: %u, use_entries: %u\n",
+		    mb, tms, IPv6_KEY_BYTES(key.src_dst), key.id, ip_ofs, ip_len,
+		    trim, RTE_IPV6_GET_MF(frag_hdr->frag_data),
+		    tbl, tbl->max_cycles, tbl->entry_mask, tbl->max_entries,
+		    tbl->use_entries);
 
 	/* check that fragment length is greater then zero. */
 	if (ip_len <= 0) {
@@ -189,30 +188,28 @@ rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
 		return NULL;
 	}
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-		"tbl: %p, max_entries: %u, use_entries: %u\n"
-		"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
-		__func__, __LINE__,
-		tbl, tbl->max_entries, tbl->use_entries,
-		fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
-		fp->total_size, fp->frag_size, fp->last_idx);
+	IP_FRAG_LOG(DEBUG,
+		    "tbl: %p, max_entries: %u, use_entries: %u\n"
+		    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
+		    ", total_size: %u, frag_size: %u, last_idx: %u\n",
+		    tbl, tbl->max_entries, tbl->use_entries,
+		    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
+		    fp->total_size, fp->frag_size, fp->last_idx);
 
 
 	/* process the fragmented packet. */
 	mb = ip_frag_process(fp, dr, mb, ip_ofs, ip_len,
-			MORE_FRAGS(frag_hdr->frag_data));
+			     MORE_FRAGS(frag_hdr->frag_data));
 	ip_frag_inuse(tbl, fp);
 
-	IP_FRAG_LOG(DEBUG, "%s:%d:\n"
-		"mbuf: %p\n"
-		"tbl: %p, max_entries: %u, use_entries: %u\n"
-		"ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
-		", total_size: %u, frag_size: %u, last_idx: %u\n\n",
-		__func__, __LINE__, mb,
-		tbl, tbl->max_entries, tbl->use_entries,
-		fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
-		fp->total_size, fp->frag_size, fp->last_idx);
+	IP_FRAG_LOG(DEBUG,
+		    "mbuf: %p\n"
+		    "tbl: %p, max_entries: %u, use_entries: %u\n"
+		    "ipv6_frag_pkt: %p, key: <" IPv6_KEY_BYTES_FMT ", %#x>, start: %" PRIu64
+		    ", total_size: %u, frag_size: %u, last_idx: %u\n",
+		    mb, tbl, tbl->max_entries, tbl->use_entries,
+		    fp, IPv6_KEY_BYTES(fp->key.src_dst), fp->key.id, fp->start,
+		    fp->total_size, fp->frag_size, fp->last_idx);
 
 	return mb;
 }
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v4 2/5] reorder: use a dynamic logtype
  2023-02-10 17:15 ` [PATCH v4 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
  2023-02-10 17:15   ` [PATCH v4 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
@ 2023-02-10 17:15   ` Stephen Hemminger
  2023-02-10 17:15   ` [PATCH v4 3/5] latencystats: use " Stephen Hemminger
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10 17:15 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, sergio.gonzalez.monroy, Reshma Pattan,
	Declan Doherty, Richardson Bruce, Neil Horman

Libraries should not be reusing RTE_LOGTYPE_USER1 instead
of doing proper logtype registration.

Fixes: b70b56032bff ("reorder: new library")
Cc: sergio.gonzalez.monroy@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/reorder/rte_reorder.c | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/lib/reorder/rte_reorder.c b/lib/reorder/rte_reorder.c
index 385ee479da42..c9ae42e71783 100644
--- a/lib/reorder/rte_reorder.c
+++ b/lib/reorder/rte_reorder.c
@@ -27,7 +27,11 @@ EAL_REGISTER_TAILQ(rte_reorder_tailq)
 #define RTE_REORDER_NAMESIZE 32
 
 /* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_REORDER	RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_DEFAULT(reorder_logtype, INFO);
+
+#define REORDER_LOG(level, fmt, args...)		\
+	rte_log(RTE_LOG_ ## level, reorder_logtype,	\
+		"%s(): " fmt "\n", __func__, ##args)
 
 #define RTE_REORDER_SEQN_DYNFIELD_NAME "rte_reorder_seqn_dynfield"
 int rte_reorder_seqn_dynfield_offset = -1;
@@ -62,26 +66,25 @@ rte_reorder_init(struct rte_reorder_buffer *b, unsigned int bufsize,
 					(2 * size * sizeof(struct rte_mbuf *));
 
 	if (b == NULL) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer parameter:"
-					" NULL\n");
+		REORDER_LOG(ERR, "Invalid reorder buffer parameter: NULL");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (!rte_is_power_of_2(size)) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer size"
-				" - Not a power of 2\n");
+		REORDER_LOG(ERR,
+			    "Invalid reorder buffer size - Not a power of 2");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (name == NULL) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer name ptr:"
-					" NULL\n");
+		REORDER_LOG(ERR, "Invalid reorder buffer name ptr: NULL");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (bufsize < min_bufsize) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer memory size: %u, "
-			"minimum required: %u\n", bufsize, min_bufsize);
+		REORDER_LOG(ERR,
+			    "Invalid reorder buffer memory size: %u, minimum required: %u",
+			    bufsize, min_bufsize);
 		rte_errno = EINVAL;
 		return NULL;
 	}
@@ -116,14 +119,13 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 
 	/* Check user arguments. */
 	if (!rte_is_power_of_2(size)) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer size"
-				" - Not a power of 2\n");
+		REORDER_LOG(ERR,
+			    "Invalid reorder buffer size - Not a power of 2");
 		rte_errno = EINVAL;
 		return NULL;
 	}
 	if (name == NULL) {
-		RTE_LOG(ERR, REORDER, "Invalid reorder buffer name ptr:"
-					" NULL\n");
+		REORDER_LOG(ERR, "Invalid reorder buffer name ptr: NULL");
 		rte_errno = EINVAL;
 		return NULL;
 	}
@@ -131,7 +133,8 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 	rte_reorder_seqn_dynfield_offset =
 		rte_mbuf_dynfield_register(&reorder_seqn_dynfield_desc);
 	if (rte_reorder_seqn_dynfield_offset < 0) {
-		RTE_LOG(ERR, REORDER, "Failed to register mbuf field for reorder sequence number\n");
+		REORDER_LOG(ERR,
+			    "Failed to register mbuf field for reorder sequence number");
 		rte_errno = ENOMEM;
 		return NULL;
 	}
@@ -150,7 +153,7 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 	/* allocate tailq entry */
 	te = rte_zmalloc("REORDER_TAILQ_ENTRY", sizeof(*te), 0);
 	if (te == NULL) {
-		RTE_LOG(ERR, REORDER, "Failed to allocate tailq entry\n");
+		REORDER_LOG(ERR, "Failed to allocate tailq entry");
 		rte_errno = ENOMEM;
 		b = NULL;
 		goto exit;
@@ -159,7 +162,7 @@ rte_reorder_create(const char *name, unsigned socket_id, unsigned int size)
 	/* Allocate memory to store the reorder buffer structure. */
 	b = rte_zmalloc_socket("REORDER_BUFFER", bufsize, 0, socket_id);
 	if (b == NULL) {
-		RTE_LOG(ERR, REORDER, "Memzone allocation failed\n");
+		REORDER_LOG(ERR, "Memzone allocation failed");
 		rte_errno = ENOMEM;
 		rte_free(te);
 	} else {
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v4 3/5] latencystats: use dynamic logtype
  2023-02-10 17:15 ` [PATCH v4 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
  2023-02-10 17:15   ` [PATCH v4 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
  2023-02-10 17:15   ` [PATCH v4 2/5] reorder: " Stephen Hemminger
@ 2023-02-10 17:15   ` Stephen Hemminger
  2023-02-10 17:15   ` [PATCH v4 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
  2023-02-10 17:15   ` [PATCH v4 5/5] ipsec: fix usage " Stephen Hemminger
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10 17:15 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, reshma.pattan, Remy Horton, Harry van Haaren

Libraries should not reuse RTE_LOGTYPE_USER1 for their
logging. Instead they should register their own type.

Fixes: 5cd3cac9ed22 ("latency: added new library for latency stats")
Cc: reshma.pattan@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/latencystats/rte_latencystats.c | 55 +++++++++++++++--------------
 1 file changed, 28 insertions(+), 27 deletions(-)

diff --git a/lib/latencystats/rte_latencystats.c b/lib/latencystats/rte_latencystats.c
index 8985a377db4e..3a4c47e2b34a 100644
--- a/lib/latencystats/rte_latencystats.c
+++ b/lib/latencystats/rte_latencystats.c
@@ -26,7 +26,10 @@ latencystat_cycles_per_ns(void)
 }
 
 /* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_LATENCY_STATS RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_DEFAULT(latencystat_logtype, INFO);
+#define LATENCYSTATS_LOG(level, fmt, args...)		\
+	rte_log(RTE_LOG_ ## level, latencystat_logtype,	\
+		"%s(): " fmt "\n", __func__, ## args)
 
 static uint64_t timestamp_dynflag;
 static int timestamp_dynfield_offset = -1;
@@ -95,7 +98,7 @@ rte_latencystats_update(void)
 					latency_stats_index,
 					values, NUM_LATENCY_STATS);
 	if (ret < 0)
-		RTE_LOG(INFO, LATENCY_STATS, "Failed to push the stats\n");
+		LATENCYSTATS_LOG(INFO, "Failed to push the stats");
 
 	return ret;
 }
@@ -227,8 +230,7 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 	mz = rte_memzone_reserve(MZ_RTE_LATENCY_STATS, sizeof(*glob_stats),
 					rte_socket_id(), flags);
 	if (mz == NULL) {
-		RTE_LOG(ERR, LATENCY_STATS, "Cannot reserve memory: %s:%d\n",
-			__func__, __LINE__);
+		LATENCYSTATS_LOG(ERR, "Cannot reserve memory");
 		return -ENOMEM;
 	}
 
@@ -243,8 +245,7 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 	latency_stats_index = rte_metrics_reg_names(ptr_strings,
 							NUM_LATENCY_STATS);
 	if (latency_stats_index < 0) {
-		RTE_LOG(DEBUG, LATENCY_STATS,
-			"Failed to register latency stats names\n");
+		LATENCYSTATS_LOG(ERR, "Failed to register latency stats names");
 		return -1;
 	}
 
@@ -252,8 +253,8 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 	ret = rte_mbuf_dyn_rx_timestamp_register(&timestamp_dynfield_offset,
 			&timestamp_dynflag);
 	if (ret != 0) {
-		RTE_LOG(ERR, LATENCY_STATS,
-			"Cannot register mbuf field/flag for timestamp\n");
+		LATENCYSTATS_LOG(ERR,
+				 "Cannot register mbuf field/flag for timestamp");
 		return -rte_errno;
 	}
 
@@ -263,9 +264,9 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 
 		ret = rte_eth_dev_info_get(pid, &dev_info);
 		if (ret != 0) {
-			RTE_LOG(INFO, LATENCY_STATS,
-				"Error during getting device (port %u) info: %s\n",
-				pid, strerror(-ret));
+			LATENCYSTATS_LOG(INFO,
+					 "Error during getting device (port %u) info: %s",
+					 pid, strerror(-ret));
 
 			continue;
 		}
@@ -275,18 +276,18 @@ rte_latencystats_init(uint64_t app_samp_intvl,
 			cbs->cb = rte_eth_add_first_rx_callback(pid, qid,
 					add_time_stamps, user_cb);
 			if (!cbs->cb)
-				RTE_LOG(INFO, LATENCY_STATS, "Failed to "
-					"register Rx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "Failed to register Rx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 		for (qid = 0; qid < dev_info.nb_tx_queues; qid++) {
 			cbs = &tx_cbs[pid][qid];
 			cbs->cb =  rte_eth_add_tx_callback(pid, qid,
 					calc_latency, user_cb);
 			if (!cbs->cb)
-				RTE_LOG(INFO, LATENCY_STATS, "Failed to "
-					"register Tx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "Failed to register Tx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 	}
 	return 0;
@@ -307,8 +308,8 @@ rte_latencystats_uninit(void)
 
 		ret = rte_eth_dev_info_get(pid, &dev_info);
 		if (ret != 0) {
-			RTE_LOG(INFO, LATENCY_STATS,
-				"Error during getting device (port %u) info: %s\n",
+			LATENCYSTATS_LOG(INFO,
+				"Error during getting device (port %u) info: %s",
 				pid, strerror(-ret));
 
 			continue;
@@ -318,17 +319,17 @@ rte_latencystats_uninit(void)
 			cbs = &rx_cbs[pid][qid];
 			ret = rte_eth_remove_rx_callback(pid, qid, cbs->cb);
 			if (ret)
-				RTE_LOG(INFO, LATENCY_STATS, "failed to "
-					"remove Rx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "failed to remove Rx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 		for (qid = 0; qid < dev_info.nb_tx_queues; qid++) {
 			cbs = &tx_cbs[pid][qid];
 			ret = rte_eth_remove_tx_callback(pid, qid, cbs->cb);
 			if (ret)
-				RTE_LOG(INFO, LATENCY_STATS, "failed to "
-					"remove Tx callback for pid=%d, "
-					"qid=%d\n", pid, qid);
+				LATENCYSTATS_LOG(INFO,
+						 "failed to remove Tx callback for pid=%d, qid=%d",
+						 pid, qid);
 		}
 	}
 
@@ -365,8 +366,8 @@ rte_latencystats_get(struct rte_metric_value *values, uint16_t size)
 		const struct rte_memzone *mz;
 		mz = rte_memzone_lookup(MZ_RTE_LATENCY_STATS);
 		if (mz == NULL) {
-			RTE_LOG(ERR, LATENCY_STATS,
-				"Latency stats memzone not found\n");
+			LATENCYSTATS_LOG(ERR,
+					 "Latency stats memzone not found");
 			return -ENOMEM;
 		}
 		glob_stats =  mz->addr;
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v4 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1
  2023-02-10 17:15 ` [PATCH v4 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
                     ` (2 preceding siblings ...)
  2023-02-10 17:15   ` [PATCH v4 3/5] latencystats: use " Stephen Hemminger
@ 2023-02-10 17:15   ` Stephen Hemminger
  2023-02-10 17:15   ` [PATCH v4 5/5] ipsec: fix usage " Stephen Hemminger
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10 17:15 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Chenbo Xia, Maxime Coquelin

Fix instances of USER1 logtype in fdset and crypto
sections.

Acked-by: Chenbo Xia <chenbo.xia@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/vhost/fd_man.c       | 16 +++++++++-------
 lib/vhost/vhost_crypto.c | 25 +++++++++++--------------
 2 files changed, 20 insertions(+), 21 deletions(-)

diff --git a/lib/vhost/fd_man.c b/lib/vhost/fd_man.c
index 1876fada3354..172f7dc03ab2 100644
--- a/lib/vhost/fd_man.c
+++ b/lib/vhost/fd_man.c
@@ -10,8 +10,10 @@
 
 #include "fd_man.h"
 
-
-#define RTE_LOGTYPE_VHOST_FDMAN RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_SUFFIX(vhost_fdset_logtype, fdset, INFO);
+#define FDSET_LOG(level, fmt, args...)		\
+	rte_log(RTE_LOG_ ## level, vhost_fdset_logtype,	\
+		"%s(): " fmt "\n", __func__, ## args)
 
 #define FDPOLLERR (POLLERR | POLLHUP | POLLNVAL)
 
@@ -334,8 +336,8 @@ fdset_pipe_init(struct fdset *fdset)
 	int ret;
 
 	if (pipe(fdset->u.pipefd) < 0) {
-		RTE_LOG(ERR, VHOST_FDMAN,
-			"failed to create pipe for vhost fdset\n");
+		FDSET_LOG(ERR,
+			"failed to create pipe for vhost fdset");
 		return -1;
 	}
 
@@ -343,9 +345,9 @@ fdset_pipe_init(struct fdset *fdset)
 			fdset_pipe_read_cb, NULL, NULL);
 
 	if (ret < 0) {
-		RTE_LOG(ERR, VHOST_FDMAN,
-			"failed to add pipe readfd %d into vhost server fdset\n",
-			fdset->u.readfd);
+		FDSET_LOG(ERR,
+			  "failed to add pipe readfd %d into vhost server fdset",
+			  fdset->u.readfd);
 
 		fdset_pipe_uninit(fdset);
 		return -1;
diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
index f02bf865c349..3be46614c22a 100644
--- a/lib/vhost/vhost_crypto.c
+++ b/lib/vhost/vhost_crypto.c
@@ -4,6 +4,7 @@
 #include <rte_malloc.h>
 #include <rte_hash.h>
 #include <rte_jhash.h>
+#include <rte_log.h>
 #include <rte_mbuf.h>
 #include <rte_cryptodev.h>
 
@@ -16,22 +17,18 @@
 #define IV_OFFSET		(sizeof(struct rte_crypto_op) + \
 				sizeof(struct rte_crypto_sym_op))
 
+RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);
+
+#define VC_LOG(level, fmt, args...)				\
+	rte_log(RTE_LOG_ ## level, vhost_crypto_logtype,	\
+		"%s():%u: " fmt "\n", __func__, __LINE__, ## args)
+
+#define VC_LOG_ERR(fmt, args...)	VC_LOG(ERR, fmt, ## args)
+#define VC_LOG_INFO(fmt, args...)	VC_LOG(INFO, fmt, ## args)
+
 #ifdef RTE_LIBRTE_VHOST_DEBUG
-#define VC_LOG_ERR(fmt, args...)				\
-	RTE_LOG(ERR, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
-#define VC_LOG_INFO(fmt, args...)				\
-	RTE_LOG(INFO, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
-
-#define VC_LOG_DBG(fmt, args...)				\
-	RTE_LOG(DEBUG, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
+#define VC_LOG_DBG(fmt, args...)	VC_LOG(DEBUG, fmt, ## args)
 #else
-#define VC_LOG_ERR(fmt, args...)				\
-	RTE_LOG(ERR, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
-#define VC_LOG_INFO(fmt, args...)				\
-	RTE_LOG(INFO, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
 #define VC_LOG_DBG(fmt, args...)
 #endif
 
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v4 5/5] ipsec: fix usage of RTE_LOGTYPE_USER1
  2023-02-10 17:15 ` [PATCH v4 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
                     ` (3 preceding siblings ...)
  2023-02-10 17:15   ` [PATCH v4 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
@ 2023-02-10 17:15   ` Stephen Hemminger
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-10 17:15 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, kai.ji, Pablo de Lara, Arkadiusz Kusztal

There already is a logtype in this driver, use it!

Fixes: b35848bc01f6 ("crypto/ipsec_mb: add multi-process IPC request handler")
Cc: kai.ji@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
index 3e52f9567401..e9eb0d15b794 100644
--- a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
+++ b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
@@ -7,6 +7,7 @@
 
 #include <rte_common.h>
 #include <rte_malloc.h>
+#include <rte_log.h>
 
 #include "ipsec_mb_private.h"
 
@@ -125,7 +126,7 @@ ipsec_mb_secondary_qp_op(int dev_id, int qp_id,
 	qp_req_msg.num_fds = 0;
 	ret = rte_mp_request_sync(&qp_req_msg, &qp_resp, &ts);
 	if (ret) {
-		RTE_LOG(ERR, USER1, "Create MR request to primary process failed.");
+		IPSEC_MB_LOG(ERR, "Create MR request to primary process failed.");
 		return -1;
 	}
 	qp_resp_msg = &qp_resp.msgs[0];
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 0/5] Replace us of RTE_LOGTYPE_USER1 in libraries
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                   ` (6 preceding siblings ...)
  2023-02-10 17:15 ` [PATCH v4 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
@ 2023-02-12 16:14 ` Stephen Hemminger
  2023-02-12 16:14   ` [PATCH 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
                     ` (4 more replies)
  2023-02-20 18:49 ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
  9 siblings, 5 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-12 16:14 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

The DPDK libraries and drivers should not be using the USER1 logtype.

v5 - minimize the size of patches

Stephen Hemminger (5):
  ip_frag: use a dynamic logtype
  reorder: use a dynamic logtype
  latencystats: use dynamic logtype
  vhost: use logtype instead of RTE_LOGTYPE_USER1
  ipsec: fix usage of RTE_LOGTYPE_USER1

 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
 lib/ip_frag/ip_frag_common.h           | 5 ++++-
 lib/ip_frag/rte_ip_frag_common.c       | 2 ++
 lib/latencystats/rte_latencystats.c    | 3 ++-
 lib/reorder/rte_reorder.c              | 6 +++---
 lib/vhost/fd_man.c                     | 4 ++--
 lib/vhost/vhost_crypto.c               | 4 ++++
 7 files changed, 19 insertions(+), 8 deletions(-)

-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 1/5] ip_frag: use a dynamic logtype
  2023-02-12 16:14 ` [PATCH 0/5] Replace us of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
@ 2023-02-12 16:14   ` Stephen Hemminger
  2023-02-12 16:14   ` [PATCH 2/5] reorder: " Stephen Hemminger
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-12 16:14 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, Konstantin Ananyev, Anatoly Burakov, Thomas Monjalon

DPDK libraries should not be reusing RTE_LOGTYPE_USER1 in
lieu of doing proper logtype registration.

Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
Fixes: 416707812c03 ("ip_frag: refactor reassembly code into a proper library")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/ip_frag/ip_frag_common.h     | 5 ++++-
 lib/ip_frag/rte_ip_frag_common.c | 2 ++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/ip_frag/ip_frag_common.h b/lib/ip_frag/ip_frag_common.h
index 9c0dbdeb6eb9..95f1689d476d 100644
--- a/lib/ip_frag/ip_frag_common.h
+++ b/lib/ip_frag/ip_frag_common.h
@@ -8,9 +8,12 @@
 #include "rte_ip_frag.h"
 #include "ip_reassembly.h"
 
+extern int ipfrag_logtype;
+#define RTE_LOGTYPE_IPFRAG	ipfrag_logtype
+
 /* logging macros. */
 #ifdef RTE_LIBRTE_IP_FRAG_DEBUG
-#define	IP_FRAG_LOG(lvl, fmt, args...)	RTE_LOG(lvl, USER1, fmt, ##args)
+#define	IP_FRAG_LOG(lvl, fmt, args...)	RTE_LOG(lvl, IPFRAG, fmt, ##args)
 #else
 #define	IP_FRAG_LOG(lvl, fmt, args...)	do {} while(0)
 #endif /* IP_FRAG_DEBUG */
diff --git a/lib/ip_frag/rte_ip_frag_common.c b/lib/ip_frag/rte_ip_frag_common.c
index c1de2e81b6d0..e4af8d23ad10 100644
--- a/lib/ip_frag/rte_ip_frag_common.c
+++ b/lib/ip_frag/rte_ip_frag_common.c
@@ -7,6 +7,8 @@
 
 #include <rte_log.h>
 
+RTE_LOG_REGISTER_DEFAULT(ipfrag_logtype, INFO);
+
 #include "ip_frag_common.h"
 
 #define	IP_FRAG_HASH_FNUM	2
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 2/5] reorder: use a dynamic logtype
  2023-02-12 16:14 ` [PATCH 0/5] Replace us of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
  2023-02-12 16:14   ` [PATCH 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
@ 2023-02-12 16:14   ` Stephen Hemminger
  2023-02-12 16:14   ` [PATCH 3/5] latencystats: use " Stephen Hemminger
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-12 16:14 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, sergio.gonzalez.monroy, Reshma Pattan,
	Declan Doherty, Neil Horman, Richardson Bruce

Libraries should not be reusing RTE_LOGTYPE_USER1 instead
of doing proper logtype registration.

Fixes: b70b56032bff ("reorder: new library")
Cc: sergio.gonzalez.monroy@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/reorder/rte_reorder.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/reorder/rte_reorder.c b/lib/reorder/rte_reorder.c
index 385ee479da42..37bf132946b7 100644
--- a/lib/reorder/rte_reorder.c
+++ b/lib/reorder/rte_reorder.c
@@ -15,6 +15,9 @@
 
 #include "rte_reorder.h"
 
+RTE_LOG_REGISTER_DEFAULT(reorder_logtype, INFO);
+#define RTE_LOGTYPE_REORDER reorder_logtype
+
 TAILQ_HEAD(rte_reorder_list, rte_tailq_entry);
 
 static struct rte_tailq_elem rte_reorder_tailq = {
@@ -26,9 +29,6 @@ EAL_REGISTER_TAILQ(rte_reorder_tailq)
 #define RTE_REORDER_PREFIX "RO_"
 #define RTE_REORDER_NAMESIZE 32
 
-/* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_REORDER	RTE_LOGTYPE_USER1
-
 #define RTE_REORDER_SEQN_DYNFIELD_NAME "rte_reorder_seqn_dynfield"
 int rte_reorder_seqn_dynfield_offset = -1;
 
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 3/5] latencystats: use dynamic logtype
  2023-02-12 16:14 ` [PATCH 0/5] Replace us of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
  2023-02-12 16:14   ` [PATCH 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
  2023-02-12 16:14   ` [PATCH 2/5] reorder: " Stephen Hemminger
@ 2023-02-12 16:14   ` Stephen Hemminger
  2023-02-12 16:14   ` [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
  2023-02-12 16:14   ` [PATCH 5/5] ipsec: fix usage " Stephen Hemminger
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-12 16:14 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, reshma.pattan, Remy Horton, Harry van Haaren

Libraries should not reuse RTE_LOGTYPE_USER1 for their
logging. Instead they should register their own type.

Fixes: 5cd3cac9ed22 ("latency: added new library for latency stats")
Cc: reshma.pattan@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/latencystats/rte_latencystats.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/latencystats/rte_latencystats.c b/lib/latencystats/rte_latencystats.c
index 8985a377db4e..f3c1746cca00 100644
--- a/lib/latencystats/rte_latencystats.c
+++ b/lib/latencystats/rte_latencystats.c
@@ -26,7 +26,8 @@ latencystat_cycles_per_ns(void)
 }
 
 /* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_LATENCY_STATS RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_DEFAULT(latencystat_logtype, INFO);
+#define RTE_LOGTYPE_LATENCY_STATS latencystat_logtype
 
 static uint64_t timestamp_dynflag;
 static int timestamp_dynfield_offset = -1;
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1
  2023-02-12 16:14 ` [PATCH 0/5] Replace us of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                     ` (2 preceding siblings ...)
  2023-02-12 16:14   ` [PATCH 3/5] latencystats: use " Stephen Hemminger
@ 2023-02-12 16:14   ` Stephen Hemminger
  2023-02-12 16:14   ` [PATCH 5/5] ipsec: fix usage " Stephen Hemminger
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-12 16:14 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Chenbo Xia, Maxime Coquelin

Fix instances of USER1 logtype in fdset and crypto
sections.

Acked-by: Chenbo Xia <chenbo.xia@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/vhost/fd_man.c       | 4 ++--
 lib/vhost/vhost_crypto.c | 4 ++++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/vhost/fd_man.c b/lib/vhost/fd_man.c
index 1876fada3354..46037d02784e 100644
--- a/lib/vhost/fd_man.c
+++ b/lib/vhost/fd_man.c
@@ -10,8 +10,8 @@
 
 #include "fd_man.h"
 
-
-#define RTE_LOGTYPE_VHOST_FDMAN RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_SUFFIX(vhost_fdset_logtype, fdset, INFO);
+#define RTE_LOGTYPE_VHOST_FDMAN vhost_fdset_logtype
 
 #define FDPOLLERR (POLLERR | POLLHUP | POLLNVAL)
 
diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
index f02bf865c349..ad420ea012d0 100644
--- a/lib/vhost/vhost_crypto.c
+++ b/lib/vhost/vhost_crypto.c
@@ -4,6 +4,7 @@
 #include <rte_malloc.h>
 #include <rte_hash.h>
 #include <rte_jhash.h>
+#include <rte_log.h>
 #include <rte_mbuf.h>
 #include <rte_cryptodev.h>
 
@@ -16,6 +17,9 @@
 #define IV_OFFSET		(sizeof(struct rte_crypto_op) + \
 				sizeof(struct rte_crypto_sym_op))
 
+RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);
+#define RTE_LOGTYPE_VHOST_CRYPTO	vhost_crypto_logtype
+
 #ifdef RTE_LIBRTE_VHOST_DEBUG
 #define VC_LOG_ERR(fmt, args...)				\
 	RTE_LOG(ERR, USER1, "[%s] %s() line %u: " fmt "\n",	\
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 5/5] ipsec: fix usage of RTE_LOGTYPE_USER1
  2023-02-12 16:14 ` [PATCH 0/5] Replace us of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                     ` (3 preceding siblings ...)
  2023-02-12 16:14   ` [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
@ 2023-02-12 16:14   ` Stephen Hemminger
  4 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-12 16:14 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, kai.ji, Pablo de Lara, Arkadiusz Kusztal

There already is a logtype in this driver, use it!

Fixes: b35848bc01f6 ("crypto/ipsec_mb: add multi-process IPC request handler")
Cc: kai.ji@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
index 3e52f9567401..e9eb0d15b794 100644
--- a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
+++ b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
@@ -7,6 +7,7 @@
 
 #include <rte_common.h>
 #include <rte_malloc.h>
+#include <rte_log.h>
 
 #include "ipsec_mb_private.h"
 
@@ -125,7 +126,7 @@ ipsec_mb_secondary_qp_op(int dev_id, int qp_id,
 	qp_req_msg.num_fds = 0;
 	ret = rte_mp_request_sync(&qp_req_msg, &qp_resp, &ts);
 	if (ret) {
-		RTE_LOG(ERR, USER1, "Create MR request to primary process failed.");
+		IPSEC_MB_LOG(ERR, "Create MR request to primary process failed.");
 		return -1;
 	}
 	qp_resp_msg = &qp_resp.msgs[0];
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                   ` (7 preceding siblings ...)
  2023-02-12 16:14 ` [PATCH 0/5] Replace us of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
@ 2023-02-20 18:49 ` Stephen Hemminger
  2023-02-20 18:49   ` [PATCH v6 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
                     ` (5 more replies)
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
  9 siblings, 6 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-20 18:49 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

The DPDK libraries and drivers should not be using the USER1 logtype.

v6 - fix checkpatch warnings

Stephen Hemminger (5):
  ip_frag: use a dynamic logtype
  reorder: use a dynamic logtype
  latencystats: use dynamic logtype
  vhost: use logtype instead of RTE_LOGTYPE_USER1
  ipsec: fix usage of RTE_LOGTYPE_USER1

 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
 lib/ip_frag/ip_frag_common.h           | 5 ++++-
 lib/ip_frag/rte_ip_frag_common.c       | 2 ++
 lib/latencystats/rte_latencystats.c    | 3 ++-
 lib/reorder/rte_reorder.c              | 6 +++---
 lib/vhost/fd_man.c                     | 4 ++--
 lib/vhost/vhost_crypto.c               | 4 ++++
 7 files changed, 19 insertions(+), 8 deletions(-)

-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v6 1/5] ip_frag: use a dynamic logtype
  2023-02-20 18:49 ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
@ 2023-02-20 18:49   ` Stephen Hemminger
  2023-02-21 10:41     ` David Marchand
  2023-02-20 18:49   ` [PATCH v6 2/5] reorder: " Stephen Hemminger
                     ` (4 subsequent siblings)
  5 siblings, 1 reply; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-20 18:49 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Konstantin Ananyev

DPDK libraries should not be reusing RTE_LOGTYPE_USER1 in
lieu of doing proper logtype registration.

Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
Fixes: 416707812c03 ("ip_frag: refactor reassembly code into a proper library")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/ip_frag/ip_frag_common.h     | 5 ++++-
 lib/ip_frag/rte_ip_frag_common.c | 2 ++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/ip_frag/ip_frag_common.h b/lib/ip_frag/ip_frag_common.h
index 9c0dbdeb6eb9..95f1689d476d 100644
--- a/lib/ip_frag/ip_frag_common.h
+++ b/lib/ip_frag/ip_frag_common.h
@@ -8,9 +8,12 @@
 #include "rte_ip_frag.h"
 #include "ip_reassembly.h"
 
+extern int ipfrag_logtype;
+#define RTE_LOGTYPE_IPFRAG	ipfrag_logtype
+
 /* logging macros. */
 #ifdef RTE_LIBRTE_IP_FRAG_DEBUG
-#define	IP_FRAG_LOG(lvl, fmt, args...)	RTE_LOG(lvl, USER1, fmt, ##args)
+#define	IP_FRAG_LOG(lvl, fmt, args...)	RTE_LOG(lvl, IPFRAG, fmt, ##args)
 #else
 #define	IP_FRAG_LOG(lvl, fmt, args...)	do {} while(0)
 #endif /* IP_FRAG_DEBUG */
diff --git a/lib/ip_frag/rte_ip_frag_common.c b/lib/ip_frag/rte_ip_frag_common.c
index c1de2e81b6d0..e4af8d23ad10 100644
--- a/lib/ip_frag/rte_ip_frag_common.c
+++ b/lib/ip_frag/rte_ip_frag_common.c
@@ -7,6 +7,8 @@
 
 #include <rte_log.h>
 
+RTE_LOG_REGISTER_DEFAULT(ipfrag_logtype, INFO);
+
 #include "ip_frag_common.h"
 
 #define	IP_FRAG_HASH_FNUM	2
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v6 2/5] reorder: use a dynamic logtype
  2023-02-20 18:49 ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
  2023-02-20 18:49   ` [PATCH v6 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
@ 2023-02-20 18:49   ` Stephen Hemminger
  2023-02-20 18:49   ` [PATCH v6 3/5] latencystats: use " Stephen Hemminger
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-20 18:49 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, sergio.gonzalez.monroy

Libraries should not be reusing RTE_LOGTYPE_USER1 instead
of doing proper logtype registration.

Fixes: b70b56032bff ("reorder: new library")
Cc: sergio.gonzalez.monroy@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/reorder/rte_reorder.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/reorder/rte_reorder.c b/lib/reorder/rte_reorder.c
index 6e029c9e02fd..7a3a97972cb7 100644
--- a/lib/reorder/rte_reorder.c
+++ b/lib/reorder/rte_reorder.c
@@ -15,6 +15,9 @@
 
 #include "rte_reorder.h"
 
+RTE_LOG_REGISTER_DEFAULT(reorder_logtype, INFO);
+#define RTE_LOGTYPE_REORDER reorder_logtype
+
 TAILQ_HEAD(rte_reorder_list, rte_tailq_entry);
 
 static struct rte_tailq_elem rte_reorder_tailq = {
@@ -26,9 +29,6 @@ EAL_REGISTER_TAILQ(rte_reorder_tailq)
 #define RTE_REORDER_PREFIX "RO_"
 #define RTE_REORDER_NAMESIZE 32
 
-/* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_REORDER	RTE_LOGTYPE_USER1
-
 #define RTE_REORDER_SEQN_DYNFIELD_NAME "rte_reorder_seqn_dynfield"
 int rte_reorder_seqn_dynfield_offset = -1;
 
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v6 3/5] latencystats: use dynamic logtype
  2023-02-20 18:49 ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
  2023-02-20 18:49   ` [PATCH v6 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
  2023-02-20 18:49   ` [PATCH v6 2/5] reorder: " Stephen Hemminger
@ 2023-02-20 18:49   ` Stephen Hemminger
  2023-02-20 18:50   ` [PATCH v6 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-20 18:49 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, reshma.pattan

Libraries should not reuse RTE_LOGTYPE_USER1 for their
logging. Instead they should register their own type.

Fixes: 5cd3cac9ed22 ("latency: added new library for latency stats")
Cc: reshma.pattan@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/latencystats/rte_latencystats.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/latencystats/rte_latencystats.c b/lib/latencystats/rte_latencystats.c
index 8985a377db4e..f3c1746cca00 100644
--- a/lib/latencystats/rte_latencystats.c
+++ b/lib/latencystats/rte_latencystats.c
@@ -26,7 +26,8 @@ latencystat_cycles_per_ns(void)
 }
 
 /* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_LATENCY_STATS RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_DEFAULT(latencystat_logtype, INFO);
+#define RTE_LOGTYPE_LATENCY_STATS latencystat_logtype
 
 static uint64_t timestamp_dynflag;
 static int timestamp_dynfield_offset = -1;
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v6 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1
  2023-02-20 18:49 ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                     ` (2 preceding siblings ...)
  2023-02-20 18:49   ` [PATCH v6 3/5] latencystats: use " Stephen Hemminger
@ 2023-02-20 18:50   ` Stephen Hemminger
  2023-02-21 10:39     ` David Marchand
  2023-02-20 18:50   ` [PATCH v6 5/5] ipsec: fix usage " Stephen Hemminger
  2023-02-21 10:42   ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries David Marchand
  5 siblings, 1 reply; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-20 18:50 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Chenbo Xia, Maxime Coquelin

Fix instances of USER1 logtype in fdset and crypto
sections.

Acked-by: Chenbo Xia <chenbo.xia@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/vhost/fd_man.c       | 4 ++--
 lib/vhost/vhost_crypto.c | 4 ++++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/vhost/fd_man.c b/lib/vhost/fd_man.c
index 1876fada3354..46037d02784e 100644
--- a/lib/vhost/fd_man.c
+++ b/lib/vhost/fd_man.c
@@ -10,8 +10,8 @@
 
 #include "fd_man.h"
 
-
-#define RTE_LOGTYPE_VHOST_FDMAN RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_SUFFIX(vhost_fdset_logtype, fdset, INFO);
+#define RTE_LOGTYPE_VHOST_FDMAN vhost_fdset_logtype
 
 #define FDPOLLERR (POLLERR | POLLHUP | POLLNVAL)
 
diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
index f02bf865c349..ad420ea012d0 100644
--- a/lib/vhost/vhost_crypto.c
+++ b/lib/vhost/vhost_crypto.c
@@ -4,6 +4,7 @@
 #include <rte_malloc.h>
 #include <rte_hash.h>
 #include <rte_jhash.h>
+#include <rte_log.h>
 #include <rte_mbuf.h>
 #include <rte_cryptodev.h>
 
@@ -16,6 +17,9 @@
 #define IV_OFFSET		(sizeof(struct rte_crypto_op) + \
 				sizeof(struct rte_crypto_sym_op))
 
+RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);
+#define RTE_LOGTYPE_VHOST_CRYPTO	vhost_crypto_logtype
+
 #ifdef RTE_LIBRTE_VHOST_DEBUG
 #define VC_LOG_ERR(fmt, args...)				\
 	RTE_LOG(ERR, USER1, "[%s] %s() line %u: " fmt "\n",	\
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v6 5/5] ipsec: fix usage of RTE_LOGTYPE_USER1
  2023-02-20 18:49 ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                     ` (3 preceding siblings ...)
  2023-02-20 18:50   ` [PATCH v6 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
@ 2023-02-20 18:50   ` Stephen Hemminger
  2023-02-21 10:42   ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries David Marchand
  5 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-20 18:50 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, kai.ji

There already is a logtype in this driver, use it!

Fixes: b35848bc01f6 ("crypto/ipsec_mb: add multi-process IPC request handler")
Cc: kai.ji@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
index 3e52f9567401..e9eb0d15b794 100644
--- a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
+++ b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
@@ -7,6 +7,7 @@
 
 #include <rte_common.h>
 #include <rte_malloc.h>
+#include <rte_log.h>
 
 #include "ipsec_mb_private.h"
 
@@ -125,7 +126,7 @@ ipsec_mb_secondary_qp_op(int dev_id, int qp_id,
 	qp_req_msg.num_fds = 0;
 	ret = rte_mp_request_sync(&qp_req_msg, &qp_resp, &ts);
 	if (ret) {
-		RTE_LOG(ERR, USER1, "Create MR request to primary process failed.");
+		IPSEC_MB_LOG(ERR, "Create MR request to primary process failed.");
 		return -1;
 	}
 	qp_resp_msg = &qp_resp.msgs[0];
-- 
2.39.1


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v6 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1
  2023-02-20 18:50   ` [PATCH v6 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
@ 2023-02-21 10:39     ` David Marchand
  0 siblings, 0 replies; 50+ messages in thread
From: David Marchand @ 2023-02-21 10:39 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev, Chenbo Xia, Maxime Coquelin

On Mon, Feb 20, 2023 at 7:50 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> Fix instances of USER1 logtype in fdset and crypto
> sections.
>
> Acked-by: Chenbo Xia <chenbo.xia@intel.com>
> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  lib/vhost/fd_man.c       | 4 ++--
>  lib/vhost/vhost_crypto.c | 4 ++++
>  2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/lib/vhost/fd_man.c b/lib/vhost/fd_man.c
> index 1876fada3354..46037d02784e 100644
> --- a/lib/vhost/fd_man.c
> +++ b/lib/vhost/fd_man.c
> @@ -10,8 +10,8 @@
>
>  #include "fd_man.h"
>
> -
> -#define RTE_LOGTYPE_VHOST_FDMAN RTE_LOGTYPE_USER1
> +RTE_LOG_REGISTER_SUFFIX(vhost_fdset_logtype, fdset, INFO);
> +#define RTE_LOGTYPE_VHOST_FDMAN vhost_fdset_logtype

Oh, I did not follow the previous revisions, but now that I see this, nice hack.

>
>  #define FDPOLLERR (POLLERR | POLLHUP | POLLNVAL)
>
> diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
> index f02bf865c349..ad420ea012d0 100644
> --- a/lib/vhost/vhost_crypto.c
> +++ b/lib/vhost/vhost_crypto.c
> @@ -4,6 +4,7 @@
>  #include <rte_malloc.h>
>  #include <rte_hash.h>
>  #include <rte_jhash.h>
> +#include <rte_log.h>
>  #include <rte_mbuf.h>
>  #include <rte_cryptodev.h>
>
> @@ -16,6 +17,9 @@
>  #define IV_OFFSET              (sizeof(struct rte_crypto_op) + \
>                                 sizeof(struct rte_crypto_sym_op))
>
> +RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);
> +#define RTE_LOGTYPE_VHOST_CRYPTO       vhost_crypto_logtype
> +
>  #ifdef RTE_LIBRTE_VHOST_DEBUG
>  #define VC_LOG_ERR(fmt, args...)                               \
>         RTE_LOG(ERR, USER1, "[%s] %s() line %u: " fmt "\n",     \

However, there is something missing here.

Existing code was directly using RTE_LOGTYPE_USER1.
We still need to update:

diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
index ad420ea012..d2b4af1d1c 100644
--- a/lib/vhost/vhost_crypto.c
+++ b/lib/vhost/vhost_crypto.c
@@ -22,20 +22,20 @@ RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);

 #ifdef RTE_LIBRTE_VHOST_DEBUG
 #define VC_LOG_ERR(fmt, args...)                               \
-       RTE_LOG(ERR, USER1, "[%s] %s() line %u: " fmt "\n",     \
+       RTE_LOG(ERR, VHOST_CRYPTO, "[%s] %s() line %u: " fmt "\n",      \
                "Vhost-Crypto", __func__, __LINE__, ## args)
 #define VC_LOG_INFO(fmt, args...)                              \
-       RTE_LOG(INFO, USER1, "[%s] %s() line %u: " fmt "\n",    \
+       RTE_LOG(INFO, VHOST_CRYPTO, "[%s] %s() line %u: " fmt "\n",     \
                "Vhost-Crypto", __func__, __LINE__, ## args)

 #define VC_LOG_DBG(fmt, args...)                               \
-       RTE_LOG(DEBUG, USER1, "[%s] %s() line %u: " fmt "\n",   \
+       RTE_LOG(DEBUG, VHOST_CRYPTO, "[%s] %s() line %u: " fmt "\n",    \
                "Vhost-Crypto", __func__, __LINE__, ## args)
 #else
 #define VC_LOG_ERR(fmt, args...)                               \
-       RTE_LOG(ERR, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
+       RTE_LOG(ERR, VHOST_CRYPTO, "[VHOST-Crypto]: " fmt "\n", ## args)
 #define VC_LOG_INFO(fmt, args...)                              \
-       RTE_LOG(INFO, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
+       RTE_LOG(INFO, VHOST_CRYPTO, "[VHOST-Crypto]: " fmt "\n", ## args)
 #define VC_LOG_DBG(fmt, args...)
 #endif


-- 
David Marchand


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v6 1/5] ip_frag: use a dynamic logtype
  2023-02-20 18:49   ` [PATCH v6 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
@ 2023-02-21 10:41     ` David Marchand
  0 siblings, 0 replies; 50+ messages in thread
From: David Marchand @ 2023-02-21 10:41 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev, Konstantin Ananyev

On Mon, Feb 20, 2023 at 7:50 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> DPDK libraries should not be reusing RTE_LOGTYPE_USER1 in
> lieu of doing proper logtype registration.
>
> Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
> Fixes: 416707812c03 ("ip_frag: refactor reassembly code into a proper library")
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  lib/ip_frag/ip_frag_common.h     | 5 ++++-
>  lib/ip_frag/rte_ip_frag_common.c | 2 ++
>  2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/lib/ip_frag/ip_frag_common.h b/lib/ip_frag/ip_frag_common.h
> index 9c0dbdeb6eb9..95f1689d476d 100644
> --- a/lib/ip_frag/ip_frag_common.h
> +++ b/lib/ip_frag/ip_frag_common.h
> @@ -8,9 +8,12 @@
>  #include "rte_ip_frag.h"
>  #include "ip_reassembly.h"
>
> +extern int ipfrag_logtype;
> +#define RTE_LOGTYPE_IPFRAG     ipfrag_logtype
> +
>  /* logging macros. */
>  #ifdef RTE_LIBRTE_IP_FRAG_DEBUG
> -#define        IP_FRAG_LOG(lvl, fmt, args...)  RTE_LOG(lvl, USER1, fmt, ##args)
> +#define        IP_FRAG_LOG(lvl, fmt, args...)  RTE_LOG(lvl, IPFRAG, fmt, ##args)
>  #else
>  #define        IP_FRAG_LOG(lvl, fmt, args...)  do {} while(0)
>  #endif /* IP_FRAG_DEBUG */
> diff --git a/lib/ip_frag/rte_ip_frag_common.c b/lib/ip_frag/rte_ip_frag_common.c
> index c1de2e81b6d0..e4af8d23ad10 100644
> --- a/lib/ip_frag/rte_ip_frag_common.c
> +++ b/lib/ip_frag/rte_ip_frag_common.c
> @@ -7,6 +7,8 @@
>
>  #include <rte_log.h>
>
> +RTE_LOG_REGISTER_DEFAULT(ipfrag_logtype, INFO);
> +
>  #include "ip_frag_common.h"
>
>  #define        IP_FRAG_HASH_FNUM       2

There are still some parts using USER1 in this library:

lib/ip_frag/rte_ip_frag_common.c:               RTE_LOG(ERR, USER1,
"%s: invalid input parameter\n", __func__);
lib/ip_frag/rte_ip_frag_common.c:               RTE_LOG(ERR, USER1,
lib/ip_frag/rte_ip_frag_common.c:       RTE_LOG(INFO, USER1, "%s:
allocated of %zu bytes at socket %d\n",

-- 
David Marchand


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries
  2023-02-20 18:49 ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                     ` (4 preceding siblings ...)
  2023-02-20 18:50   ` [PATCH v6 5/5] ipsec: fix usage " Stephen Hemminger
@ 2023-02-21 10:42   ` David Marchand
  2023-02-21 18:46     ` Stephen Hemminger
  5 siblings, 1 reply; 50+ messages in thread
From: David Marchand @ 2023-02-21 10:42 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

On Mon, Feb 20, 2023 at 7:50 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> The DPDK libraries and drivers should not be using the USER1 logtype.
>
> v6 - fix checkpatch warnings
>
> Stephen Hemminger (5):
>   ip_frag: use a dynamic logtype
>   reorder: use a dynamic logtype
>   latencystats: use dynamic logtype
>   vhost: use logtype instead of RTE_LOGTYPE_USER1
>   ipsec: fix usage of RTE_LOGTYPE_USER1
>
>  drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
>  lib/ip_frag/ip_frag_common.h           | 5 ++++-
>  lib/ip_frag/rte_ip_frag_common.c       | 2 ++
>  lib/latencystats/rte_latencystats.c    | 3 ++-
>  lib/reorder/rte_reorder.c              | 6 +++---
>  lib/vhost/fd_man.c                     | 4 ++--
>  lib/vhost/vhost_crypto.c               | 4 ++++
>  7 files changed, 19 insertions(+), 8 deletions(-)

Could you update the power library too?

lib/power/guest_channel.c:#define RTE_LOGTYPE_GUEST_CHANNEL RTE_LOGTYPE_USER1

Thanks.

-- 
David Marchand


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries
  2023-02-21 10:42   ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries David Marchand
@ 2023-02-21 18:46     ` Stephen Hemminger
  0 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-02-21 18:46 UTC (permalink / raw)
  To: David Marchand; +Cc: dev

On Tue, 21 Feb 2023 11:42:45 +0100
David Marchand <david.marchand@redhat.com> wrote:

> On Mon, Feb 20, 2023 at 7:50 PM Stephen Hemminger
> <stephen@networkplumber.org> wrote:
> >
> > The DPDK libraries and drivers should not be using the USER1 logtype.
> >
> > v6 - fix checkpatch warnings
> >
> > Stephen Hemminger (5):
> >   ip_frag: use a dynamic logtype
> >   reorder: use a dynamic logtype
> >   latencystats: use dynamic logtype
> >   vhost: use logtype instead of RTE_LOGTYPE_USER1
> >   ipsec: fix usage of RTE_LOGTYPE_USER1
> >
> >  drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
> >  lib/ip_frag/ip_frag_common.h           | 5 ++++-
> >  lib/ip_frag/rte_ip_frag_common.c       | 2 ++
> >  lib/latencystats/rte_latencystats.c    | 3 ++-
> >  lib/reorder/rte_reorder.c              | 6 +++---
> >  lib/vhost/fd_man.c                     | 4 ++--
> >  lib/vhost/vhost_crypto.c               | 4 ++++
> >  7 files changed, 19 insertions(+), 8 deletions(-)  
> 
> Could you update the power library too?
> 
> lib/power/guest_channel.c:#define RTE_LOGTYPE_GUEST_CHANNEL RTE_LOGTYPE_USER1

I picked that up in the other patch set because lib/power should be using
its own logtype.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v8 0/6] Convert use of RTE_LOGTYPE_USER1 in libraries
  2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
                   ` (8 preceding siblings ...)
  2023-02-20 18:49 ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
@ 2023-08-14 16:31 ` Stephen Hemminger
  2023-08-14 16:31   ` [PATCH v8 1/6] ip_frag: use a dynamic logtype Stephen Hemminger
                     ` (7 more replies)
  9 siblings, 8 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-08-14 16:31 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

Libraries in DPDK should be using dynamic logtype instead
of overloading the static logtype RTE_LOGTYPE_USER1

v8 - rebase and add power library

Stephen Hemminger (6):
  ip_frag: use a dynamic logtype
  reorder: use a dynamic logtype
  latencystats: use dynamic logtype
  vhost: use logtype instead of RTE_LOGTYPE_USER1
  ipsec: fix usage of RTE_LOGTYPE_USER1
  power: use a dynamic logtype for guest channel

 drivers/crypto/ipsec_mb/ipsec_mb_ops.c |  3 ++-
 lib/ip_frag/ip_frag_common.h           |  5 ++++-
 lib/ip_frag/rte_ip_frag_common.c       |  8 +++++---
 lib/latencystats/rte_latencystats.c    |  3 ++-
 lib/power/guest_channel.c              |  3 ++-
 lib/reorder/rte_reorder.c              |  6 +++---
 lib/vhost/fd_man.c                     |  4 ++--
 lib/vhost/vhost_crypto.c               | 22 +++++++++++-----------
 8 files changed, 31 insertions(+), 23 deletions(-)

-- 
2.39.2


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v8 1/6] ip_frag: use a dynamic logtype
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
@ 2023-08-14 16:31   ` Stephen Hemminger
  2023-12-01  8:10     ` David Marchand
  2023-08-14 16:31   ` [PATCH v8 2/6] reorder: " Stephen Hemminger
                     ` (6 subsequent siblings)
  7 siblings, 1 reply; 50+ messages in thread
From: Stephen Hemminger @ 2023-08-14 16:31 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, Konstantin Ananyev, Anatoly Burakov, Thomas Monjalon

DPDK libraries should not be reusing RTE_LOGTYPE_USER1 in
lieu of doing proper logtype registration.

Acked-by: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
Fixes: 416707812c03 ("ip_frag: refactor reassembly code into a proper library")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/ip_frag/ip_frag_common.h     | 5 ++++-
 lib/ip_frag/rte_ip_frag_common.c | 8 +++++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/lib/ip_frag/ip_frag_common.h b/lib/ip_frag/ip_frag_common.h
index 7d6c1aa98d98..537bce7c3b62 100644
--- a/lib/ip_frag/ip_frag_common.h
+++ b/lib/ip_frag/ip_frag_common.h
@@ -18,9 +18,12 @@
 #include "rte_ip_frag.h"
 #include "ip_reassembly.h"
 
+extern int ipfrag_logtype;
+#define RTE_LOGTYPE_IPFRAG	ipfrag_logtype
+
 /* logging macros. */
 #ifdef RTE_LIBRTE_IP_FRAG_DEBUG
-#define	IP_FRAG_LOG(lvl, fmt, args...)	RTE_LOG(lvl, USER1, fmt, ##args)
+#define	IP_FRAG_LOG(lvl, fmt, args...)	RTE_LOG(lvl, IPFRAG, fmt, ##args)
 #else
 #define	IP_FRAG_LOG(lvl, fmt, args...)	do {} while(0)
 #endif /* IP_FRAG_DEBUG */
diff --git a/lib/ip_frag/rte_ip_frag_common.c b/lib/ip_frag/rte_ip_frag_common.c
index c1de2e81b6d0..eed399da6bc5 100644
--- a/lib/ip_frag/rte_ip_frag_common.c
+++ b/lib/ip_frag/rte_ip_frag_common.c
@@ -7,6 +7,8 @@
 
 #include <rte_log.h>
 
+RTE_LOG_REGISTER_DEFAULT(ipfrag_logtype, INFO);
+
 #include "ip_frag_common.h"
 
 #define	IP_FRAG_HASH_FNUM	2
@@ -52,20 +54,20 @@ rte_ip_frag_table_create(uint32_t bucket_num, uint32_t bucket_entries,
 	if (rte_is_power_of_2(bucket_entries) == 0 ||
 			nb_entries > UINT32_MAX || nb_entries == 0 ||
 			nb_entries < max_entries) {
-		RTE_LOG(ERR, USER1, "%s: invalid input parameter\n", __func__);
+		RTE_LOG(ERR, IPFRAG, "%s: invalid input parameter\n", __func__);
 		return NULL;
 	}
 
 	sz = sizeof (*tbl) + nb_entries * sizeof (tbl->pkt[0]);
 	if ((tbl = rte_zmalloc_socket(__func__, sz, RTE_CACHE_LINE_SIZE,
 			socket_id)) == NULL) {
-		RTE_LOG(ERR, USER1,
+		RTE_LOG(ERR, IPFRAG,
 			"%s: allocation of %zu bytes at socket %d failed do\n",
 			__func__, sz, socket_id);
 		return NULL;
 	}
 
-	RTE_LOG(INFO, USER1, "%s: allocated of %zu bytes at socket %d\n",
+	RTE_LOG(INFO, IPFRAG, "%s: allocated of %zu bytes at socket %d\n",
 		__func__, sz, socket_id);
 
 	tbl->max_cycles = max_cycles;
-- 
2.39.2


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v8 2/6] reorder: use a dynamic logtype
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
  2023-08-14 16:31   ` [PATCH v8 1/6] ip_frag: use a dynamic logtype Stephen Hemminger
@ 2023-08-14 16:31   ` Stephen Hemminger
  2023-08-16  8:29     ` [EXT] " Volodymyr Fialko
  2023-08-14 16:31   ` [PATCH v8 3/6] latencystats: use " Stephen Hemminger
                     ` (5 subsequent siblings)
  7 siblings, 1 reply; 50+ messages in thread
From: Stephen Hemminger @ 2023-08-14 16:31 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, sergio.gonzalez.monroy, Volodymyr Fialko,
	Reshma Pattan, Neil Horman, Richardson Bruce, Declan Doherty

Libraries should not be reusing RTE_LOGTYPE_USER1 instead
of doing proper logtype registration.

Fixes: b70b56032bff ("reorder: new library")
Cc: sergio.gonzalez.monroy@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/reorder/rte_reorder.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/reorder/rte_reorder.c b/lib/reorder/rte_reorder.c
index b5428d1f7bfa..640719c3ecf9 100644
--- a/lib/reorder/rte_reorder.c
+++ b/lib/reorder/rte_reorder.c
@@ -16,6 +16,9 @@
 
 #include "rte_reorder.h"
 
+RTE_LOG_REGISTER_DEFAULT(reorder_logtype, INFO);
+#define RTE_LOGTYPE_REORDER reorder_logtype
+
 TAILQ_HEAD(rte_reorder_list, rte_tailq_entry);
 
 static struct rte_tailq_elem rte_reorder_tailq = {
@@ -27,9 +30,6 @@ EAL_REGISTER_TAILQ(rte_reorder_tailq)
 #define RTE_REORDER_PREFIX "RO_"
 #define RTE_REORDER_NAMESIZE 32
 
-/* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_REORDER	RTE_LOGTYPE_USER1
-
 #define RTE_REORDER_SEQN_DYNFIELD_NAME "rte_reorder_seqn_dynfield"
 int rte_reorder_seqn_dynfield_offset = -1;
 
-- 
2.39.2


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v8 3/6] latencystats: use dynamic logtype
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
  2023-08-14 16:31   ` [PATCH v8 1/6] ip_frag: use a dynamic logtype Stephen Hemminger
  2023-08-14 16:31   ` [PATCH v8 2/6] reorder: " Stephen Hemminger
@ 2023-08-14 16:31   ` Stephen Hemminger
  2023-08-14 16:31   ` [PATCH v8 4/6] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
                     ` (4 subsequent siblings)
  7 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-08-14 16:31 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, reshma.pattan, Harry van Haaren, Remy Horton

Libraries should not reuse RTE_LOGTYPE_USER1 for their
logging. Instead they should register their own type.

Fixes: 5cd3cac9ed22 ("latency: added new library for latency stats")
Cc: reshma.pattan@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/latencystats/rte_latencystats.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/latencystats/rte_latencystats.c b/lib/latencystats/rte_latencystats.c
index 8985a377db4e..f3c1746cca00 100644
--- a/lib/latencystats/rte_latencystats.c
+++ b/lib/latencystats/rte_latencystats.c
@@ -26,7 +26,8 @@ latencystat_cycles_per_ns(void)
 }
 
 /* Macros for printing using RTE_LOG */
-#define RTE_LOGTYPE_LATENCY_STATS RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_DEFAULT(latencystat_logtype, INFO);
+#define RTE_LOGTYPE_LATENCY_STATS latencystat_logtype
 
 static uint64_t timestamp_dynflag;
 static int timestamp_dynfield_offset = -1;
-- 
2.39.2


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v8 4/6] vhost: use logtype instead of RTE_LOGTYPE_USER1
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
                     ` (2 preceding siblings ...)
  2023-08-14 16:31   ` [PATCH v8 3/6] latencystats: use " Stephen Hemminger
@ 2023-08-14 16:31   ` Stephen Hemminger
  2023-08-14 16:31   ` [PATCH v8 5/6] ipsec: fix usage " Stephen Hemminger
                     ` (3 subsequent siblings)
  7 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-08-14 16:31 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Chenbo Xia, Maxime Coquelin

Fix instances of USER1 logtype in fdset and crypto
sections.

Acked-by: Chenbo Xia <chenbo.xia@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/vhost/fd_man.c       |  4 ++--
 lib/vhost/vhost_crypto.c | 22 +++++++++++-----------
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/lib/vhost/fd_man.c b/lib/vhost/fd_man.c
index 1876fada3354..46037d02784e 100644
--- a/lib/vhost/fd_man.c
+++ b/lib/vhost/fd_man.c
@@ -10,8 +10,8 @@
 
 #include "fd_man.h"
 
-
-#define RTE_LOGTYPE_VHOST_FDMAN RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_SUFFIX(vhost_fdset_logtype, fdset, INFO);
+#define RTE_LOGTYPE_VHOST_FDMAN vhost_fdset_logtype
 
 #define FDPOLLERR (POLLERR | POLLHUP | POLLNVAL)
 
diff --git a/lib/vhost/vhost_crypto.c b/lib/vhost/vhost_crypto.c
index 9bf5ef67b9ad..3e1ef1ac25eb 100644
--- a/lib/vhost/vhost_crypto.c
+++ b/lib/vhost/vhost_crypto.c
@@ -4,6 +4,7 @@
 #include <rte_malloc.h>
 #include <rte_hash.h>
 #include <rte_jhash.h>
+#include <rte_log.h>
 #include <rte_mbuf.h>
 #include <rte_cryptodev.h>
 
@@ -16,22 +17,21 @@
 #define IV_OFFSET		(sizeof(struct rte_crypto_op) + \
 				sizeof(struct rte_crypto_sym_op))
 
-#ifdef RTE_LIBRTE_VHOST_DEBUG
+RTE_LOG_REGISTER_SUFFIX(vhost_crypto_logtype, crypto, INFO);
+#define RTE_LOGTYPE_VHOST_CRYPTO	vhost_crypto_logtype
+
 #define VC_LOG_ERR(fmt, args...)				\
-	RTE_LOG(ERR, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
+	RTE_LOG(ERR, VHOST_CRYPTO, "%s() line %u: " fmt "\n",	\
+		__func__, __LINE__, ## args)
 #define VC_LOG_INFO(fmt, args...)				\
-	RTE_LOG(INFO, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
+	RTE_LOG(INFO, VHOST_CRYPTO, "%s() line %u: " fmt "\n",	\
+		__func__, __LINE__, ## args)
 
+#ifdef RTE_LIBRTE_VHOST_DEBUG
 #define VC_LOG_DBG(fmt, args...)				\
-	RTE_LOG(DEBUG, USER1, "[%s] %s() line %u: " fmt "\n",	\
-		"Vhost-Crypto",	__func__, __LINE__, ## args)
+	RTE_LOG(DEBUG, VHOST_CRYPTO, "%s() line %u: " fmt "\n",	\
+		__func__, __LINE__, ## args)
 #else
-#define VC_LOG_ERR(fmt, args...)				\
-	RTE_LOG(ERR, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
-#define VC_LOG_INFO(fmt, args...)				\
-	RTE_LOG(INFO, USER1, "[VHOST-Crypto]: " fmt "\n", ## args)
 #define VC_LOG_DBG(fmt, args...)
 #endif
 
-- 
2.39.2


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v8 5/6] ipsec: fix usage of RTE_LOGTYPE_USER1
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
                     ` (3 preceding siblings ...)
  2023-08-14 16:31   ` [PATCH v8 4/6] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
@ 2023-08-14 16:31   ` Stephen Hemminger
  2023-08-14 16:31   ` [PATCH v8 6/6] power: use a dynamic logtype for guest channel Stephen Hemminger
                     ` (2 subsequent siblings)
  7 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-08-14 16:31 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, kai.ji, Pablo de Lara, Arkadiusz Kusztal

There already is a logtype in this driver, use it!

Fixes: b35848bc01f6 ("crypto/ipsec_mb: add multi-process IPC request handler")
Cc: kai.ji@intel.com
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
index 30f919cd402d..52d6d010c788 100644
--- a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
+++ b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
@@ -7,6 +7,7 @@
 
 #include <rte_common.h>
 #include <rte_malloc.h>
+#include <rte_log.h>
 
 #include "ipsec_mb_private.h"
 
@@ -125,7 +126,7 @@ ipsec_mb_secondary_qp_op(int dev_id, int qp_id,
 	qp_req_msg.num_fds = 0;
 	ret = rte_mp_request_sync(&qp_req_msg, &qp_resp, &ts);
 	if (ret) {
-		RTE_LOG(ERR, USER1, "Create MR request to primary process failed.");
+		IPSEC_MB_LOG(ERR, "Create MR request to primary process failed.");
 		return -1;
 	}
 	qp_resp_msg = &qp_resp.msgs[0];
-- 
2.39.2


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH v8 6/6] power: use a dynamic logtype for guest channel
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
                     ` (4 preceding siblings ...)
  2023-08-14 16:31   ` [PATCH v8 5/6] ipsec: fix usage " Stephen Hemminger
@ 2023-08-14 16:31   ` Stephen Hemminger
  2023-08-14 17:41   ` [PATCH v8 0/6] Convert use of RTE_LOGTYPE_USER1 in libraries Morten Brørup
  2023-12-04 12:25   ` David Marchand
  7 siblings, 0 replies; 50+ messages in thread
From: Stephen Hemminger @ 2023-08-14 16:31 UTC (permalink / raw)
  To: dev
  Cc: Stephen Hemminger, Anatoly Burakov, David Hunt, Alan Carew,
	Pablo de Lara

DPDK libraries should not be reusing RTE_LOGTYPE_USER1 in
lieu of doing proper logtype registration.

Fixes: cd0d5547e873 ("power: vm communication channels in guest")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/power/guest_channel.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/power/guest_channel.c b/lib/power/guest_channel.c
index 7b2ae0b6506f..cc05347425da 100644
--- a/lib/power/guest_channel.c
+++ b/lib/power/guest_channel.c
@@ -17,7 +17,8 @@
 
 #include "guest_channel.h"
 
-#define RTE_LOGTYPE_GUEST_CHANNEL RTE_LOGTYPE_USER1
+RTE_LOG_REGISTER_SUFFIX(guest_channel_logtype, guest_channel, INFO);
+#define RTE_LOGTYPE_GUEST_CHANNEL guest_channel_logtype
 
 /* Timeout for incoming message in milliseconds. */
 #define TIMEOUT 10
-- 
2.39.2


^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [PATCH v8 0/6] Convert use of RTE_LOGTYPE_USER1 in libraries
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
                     ` (5 preceding siblings ...)
  2023-08-14 16:31   ` [PATCH v8 6/6] power: use a dynamic logtype for guest channel Stephen Hemminger
@ 2023-08-14 17:41   ` Morten Brørup
  2023-12-04 12:25   ` David Marchand
  7 siblings, 0 replies; 50+ messages in thread
From: Morten Brørup @ 2023-08-14 17:41 UTC (permalink / raw)
  To: Stephen Hemminger, dev

> From: Stephen Hemminger [mailto:stephen@networkplumber.org]
> Sent: Monday, 14 August 2023 18.31
> 
> Libraries in DPDK should be using dynamic logtype instead
> of overloading the static logtype RTE_LOGTYPE_USER1
> 
> v8 - rebase and add power library
> 
> Stephen Hemminger (6):
>   ip_frag: use a dynamic logtype
>   reorder: use a dynamic logtype
>   latencystats: use dynamic logtype
>   vhost: use logtype instead of RTE_LOGTYPE_USER1
>   ipsec: fix usage of RTE_LOGTYPE_USER1
>   power: use a dynamic logtype for guest channel

Series-acked-by: Morten Brørup <mb@smartsharesystems.com>


^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [EXT] [PATCH v8 2/6] reorder: use a dynamic logtype
  2023-08-14 16:31   ` [PATCH v8 2/6] reorder: " Stephen Hemminger
@ 2023-08-16  8:29     ` Volodymyr Fialko
  0 siblings, 0 replies; 50+ messages in thread
From: Volodymyr Fialko @ 2023-08-16  8:29 UTC (permalink / raw)
  To: Stephen Hemminger, dev
  Cc: sergio.gonzalez.monroy, Reshma Pattan, Neil Horman,
	Richardson Bruce, Declan Doherty

> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Monday, August 14, 2023 6:31 PM
> To: dev@dpdk.org
> Cc: Stephen Hemminger <stephen@networkplumber.org>; sergio.gonzalez.monroy@intel.com;
> Volodymyr Fialko <vfialko@marvell.com>; Reshma Pattan <reshma.pattan@intel.com>; Neil Horman
> <nhorman@tuxdriver.com>; Richardson Bruce <bruce.richardson@intel.com>; Declan Doherty
> <declan.doherty@intel.com>
> Subject: [EXT] [PATCH v8 2/6] reorder: use a dynamic logtype
> 
> Libraries should not be reusing RTE_LOGTYPE_USER1 instead of doing proper logtype registration.
> 
> Fixes: b70b56032bff ("reorder: new library")
> Cc: sergio.gonzalez.monroy@intel.com
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

Acked-by: Volodymyr Fialko <vfialko@marvell.com>

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v8 1/6] ip_frag: use a dynamic logtype
  2023-08-14 16:31   ` [PATCH v8 1/6] ip_frag: use a dynamic logtype Stephen Hemminger
@ 2023-12-01  8:10     ` David Marchand
  2023-12-01 12:16       ` Konstantin Ananyev
  0 siblings, 1 reply; 50+ messages in thread
From: David Marchand @ 2023-12-01  8:10 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: dev, Konstantin Ananyev, Anatoly Burakov, Thomas Monjalon

On Mon, Aug 14, 2023 at 6:31 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
> @@ -52,20 +54,20 @@ rte_ip_frag_table_create(uint32_t bucket_num, uint32_t bucket_entries,
>         if (rte_is_power_of_2(bucket_entries) == 0 ||
>                         nb_entries > UINT32_MAX || nb_entries == 0 ||
>                         nb_entries < max_entries) {
> -               RTE_LOG(ERR, USER1, "%s: invalid input parameter\n", __func__);
> +               RTE_LOG(ERR, IPFRAG, "%s: invalid input parameter\n", __func__);
>                 return NULL;
>         }
>
>         sz = sizeof (*tbl) + nb_entries * sizeof (tbl->pkt[0]);
>         if ((tbl = rte_zmalloc_socket(__func__, sz, RTE_CACHE_LINE_SIZE,
>                         socket_id)) == NULL) {
> -               RTE_LOG(ERR, USER1,
> +               RTE_LOG(ERR, IPFRAG,
>                         "%s: allocation of %zu bytes at socket %d failed do\n",
>                         __func__, sz, socket_id);
>                 return NULL;
>         }
>
> -       RTE_LOG(INFO, USER1, "%s: allocated of %zu bytes at socket %d\n",
> +       RTE_LOG(INFO, IPFRAG, "%s: allocated of %zu bytes at socket %d\n",
>                 __func__, sz, socket_id);
>
>         tbl->max_cycles = max_cycles;
> --
> 2.39.2
>

Any reason not to use the IP_FRAG_LOG macro?
This is easy for me to fix when applying if you have no objection.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 50+ messages in thread

* RE: [PATCH v8 1/6] ip_frag: use a dynamic logtype
  2023-12-01  8:10     ` David Marchand
@ 2023-12-01 12:16       ` Konstantin Ananyev
  2023-12-01 13:11         ` David Marchand
  0 siblings, 1 reply; 50+ messages in thread
From: Konstantin Ananyev @ 2023-12-01 12:16 UTC (permalink / raw)
  To: David Marchand, Stephen Hemminger
  Cc: dev, Konstantin Ananyev, Anatoly Burakov, Thomas Monjalon

Hi David,

> On Mon, Aug 14, 2023 at 6:31 PM Stephen Hemminger
> <stephen@networkplumber.org> wrote:
> > @@ -52,20 +54,20 @@ rte_ip_frag_table_create(uint32_t bucket_num, uint32_t bucket_entries,
> >         if (rte_is_power_of_2(bucket_entries) == 0 ||
> >                         nb_entries > UINT32_MAX || nb_entries == 0 ||
> >                         nb_entries < max_entries) {
> > -               RTE_LOG(ERR, USER1, "%s: invalid input parameter\n", __func__);
> > +               RTE_LOG(ERR, IPFRAG, "%s: invalid input parameter\n", __func__);
> >                 return NULL;
> >         }
> >
> >         sz = sizeof (*tbl) + nb_entries * sizeof (tbl->pkt[0]);
> >         if ((tbl = rte_zmalloc_socket(__func__, sz, RTE_CACHE_LINE_SIZE,
> >                         socket_id)) == NULL) {
> > -               RTE_LOG(ERR, USER1,
> > +               RTE_LOG(ERR, IPFRAG,
> >                         "%s: allocation of %zu bytes at socket %d failed do\n",
> >                         __func__, sz, socket_id);
> >                 return NULL;
> >         }
> >
> > -       RTE_LOG(INFO, USER1, "%s: allocated of %zu bytes at socket %d\n",
> > +       RTE_LOG(INFO, IPFRAG, "%s: allocated of %zu bytes at socket %d\n",
> >                 __func__, sz, socket_id);
> >
> >         tbl->max_cycles = max_cycles;
> > --
> > 2.39.2
> >
> 
> Any reason not to use the IP_FRAG_LOG macro?
> This is easy for me to fix when applying if you have no objection.

As I remember, IP_FRAG_LOG is disabled by default.
To enable it, user has to build it with -DRTE_LIBRTE_IP_FRAG_DEBUG or so.
Konstantin
 


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v8 1/6] ip_frag: use a dynamic logtype
  2023-12-01 12:16       ` Konstantin Ananyev
@ 2023-12-01 13:11         ` David Marchand
  0 siblings, 0 replies; 50+ messages in thread
From: David Marchand @ 2023-12-01 13:11 UTC (permalink / raw)
  To: Konstantin Ananyev
  Cc: Stephen Hemminger, dev, Konstantin Ananyev, Anatoly Burakov,
	Thomas Monjalon

Hello Konstantin,

On Fri, Dec 1, 2023 at 1:17 PM Konstantin Ananyev
<konstantin.ananyev@huawei.com> wrote:
>
> Hi David,
>
> > On Mon, Aug 14, 2023 at 6:31 PM Stephen Hemminger
> > <stephen@networkplumber.org> wrote:
> > > @@ -52,20 +54,20 @@ rte_ip_frag_table_create(uint32_t bucket_num, uint32_t bucket_entries,
> > >         if (rte_is_power_of_2(bucket_entries) == 0 ||
> > >                         nb_entries > UINT32_MAX || nb_entries == 0 ||
> > >                         nb_entries < max_entries) {
> > > -               RTE_LOG(ERR, USER1, "%s: invalid input parameter\n", __func__);
> > > +               RTE_LOG(ERR, IPFRAG, "%s: invalid input parameter\n", __func__);
> > >                 return NULL;
> > >         }
> > >
> > >         sz = sizeof (*tbl) + nb_entries * sizeof (tbl->pkt[0]);
> > >         if ((tbl = rte_zmalloc_socket(__func__, sz, RTE_CACHE_LINE_SIZE,
> > >                         socket_id)) == NULL) {
> > > -               RTE_LOG(ERR, USER1,
> > > +               RTE_LOG(ERR, IPFRAG,
> > >                         "%s: allocation of %zu bytes at socket %d failed do\n",
> > >                         __func__, sz, socket_id);
> > >                 return NULL;
> > >         }
> > >
> > > -       RTE_LOG(INFO, USER1, "%s: allocated of %zu bytes at socket %d\n",
> > > +       RTE_LOG(INFO, IPFRAG, "%s: allocated of %zu bytes at socket %d\n",
> > >                 __func__, sz, socket_id);
> > >
> > >         tbl->max_cycles = max_cycles;
> > > --
> > > 2.39.2
> > >
> >
> > Any reason not to use the IP_FRAG_LOG macro?
> > This is easy for me to fix when applying if you have no objection.
>
> As I remember, IP_FRAG_LOG is disabled by default.
> To enable it, user has to build it with -DRTE_LIBRTE_IP_FRAG_DEBUG or so.

Indeed, so nothing to do here, thanks.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH v8 0/6] Convert use of RTE_LOGTYPE_USER1 in libraries
  2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
                     ` (6 preceding siblings ...)
  2023-08-14 17:41   ` [PATCH v8 0/6] Convert use of RTE_LOGTYPE_USER1 in libraries Morten Brørup
@ 2023-12-04 12:25   ` David Marchand
  7 siblings, 0 replies; 50+ messages in thread
From: David Marchand @ 2023-12-04 12:25 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: dev, Morten Brørup, Konstantin Ananyev, Volodymyr Fialko,
	Chenbo Xia, Maxime Coquelin

Hello Stephen,

On Mon, Aug 14, 2023 at 6:31 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> Libraries in DPDK should be using dynamic logtype instead
> of overloading the static logtype RTE_LOGTYPE_USER1
>
> v8 - rebase and add power library
>
> Stephen Hemminger (6):
>   ip_frag: use a dynamic logtype
>   reorder: use a dynamic logtype
>   latencystats: use dynamic logtype
>   vhost: use logtype instead of RTE_LOGTYPE_USER1
>   ipsec: fix usage of RTE_LOGTYPE_USER1
>   power: use a dynamic logtype for guest channel
>
>  drivers/crypto/ipsec_mb/ipsec_mb_ops.c |  3 ++-
>  lib/ip_frag/ip_frag_common.h           |  5 ++++-
>  lib/ip_frag/rte_ip_frag_common.c       |  8 +++++---
>  lib/latencystats/rte_latencystats.c    |  3 ++-
>  lib/power/guest_channel.c              |  3 ++-
>  lib/reorder/rte_reorder.c              |  6 +++---
>  lib/vhost/fd_man.c                     |  4 ++--
>  lib/vhost/vhost_crypto.c               | 22 +++++++++++-----------
>  8 files changed, 31 insertions(+), 23 deletions(-)

Series applied, thanks.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2023-12-04 12:25 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-08  4:48 [PATCH 0/5] Fix use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
2023-02-08  4:48 ` [PATCH 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
2023-02-08 23:52   ` Konstantin Ananyev
2023-02-08  4:48 ` [PATCH 2/5] reorder: " Stephen Hemminger
2023-02-08  4:48 ` [PATCH 3/5] latencystats: use " Stephen Hemminger
2023-02-08  4:48 ` [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
2023-02-09  7:19   ` Xia, Chenbo
2023-02-08  4:48 ` [PATCH 5/5] ipsec: fix usage " Stephen Hemminger
2023-02-10  0:22 ` [PATCH v3 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
2023-02-10  0:22   ` [PATCH v3 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
2023-02-10  0:22   ` [PATCH v3 2/5] reorder: " Stephen Hemminger
2023-02-10  0:22   ` [PATCH v3 3/5] latencystats: use " Stephen Hemminger
2023-02-10  0:22   ` [PATCH v3 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
2023-02-10  9:58     ` Maxime Coquelin
2023-02-10  0:22   ` [PATCH v3 5/5] ipsec: fix usage " Stephen Hemminger
2023-02-10 17:15 ` [PATCH v4 0/5] Replace use of RTE_LOGTYPE_USER1 in library Stephen Hemminger
2023-02-10 17:15   ` [PATCH v4 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
2023-02-10 17:15   ` [PATCH v4 2/5] reorder: " Stephen Hemminger
2023-02-10 17:15   ` [PATCH v4 3/5] latencystats: use " Stephen Hemminger
2023-02-10 17:15   ` [PATCH v4 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
2023-02-10 17:15   ` [PATCH v4 5/5] ipsec: fix usage " Stephen Hemminger
2023-02-12 16:14 ` [PATCH 0/5] Replace us of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
2023-02-12 16:14   ` [PATCH 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
2023-02-12 16:14   ` [PATCH 2/5] reorder: " Stephen Hemminger
2023-02-12 16:14   ` [PATCH 3/5] latencystats: use " Stephen Hemminger
2023-02-12 16:14   ` [PATCH 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
2023-02-12 16:14   ` [PATCH 5/5] ipsec: fix usage " Stephen Hemminger
2023-02-20 18:49 ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries Stephen Hemminger
2023-02-20 18:49   ` [PATCH v6 1/5] ip_frag: use a dynamic logtype Stephen Hemminger
2023-02-21 10:41     ` David Marchand
2023-02-20 18:49   ` [PATCH v6 2/5] reorder: " Stephen Hemminger
2023-02-20 18:49   ` [PATCH v6 3/5] latencystats: use " Stephen Hemminger
2023-02-20 18:50   ` [PATCH v6 4/5] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
2023-02-21 10:39     ` David Marchand
2023-02-20 18:50   ` [PATCH v6 5/5] ipsec: fix usage " Stephen Hemminger
2023-02-21 10:42   ` [PATCH v6 0/5] Replace use of RTE_LOGTYPE_USER1 in libraries David Marchand
2023-02-21 18:46     ` Stephen Hemminger
2023-08-14 16:31 ` [PATCH v8 0/6] Convert " Stephen Hemminger
2023-08-14 16:31   ` [PATCH v8 1/6] ip_frag: use a dynamic logtype Stephen Hemminger
2023-12-01  8:10     ` David Marchand
2023-12-01 12:16       ` Konstantin Ananyev
2023-12-01 13:11         ` David Marchand
2023-08-14 16:31   ` [PATCH v8 2/6] reorder: " Stephen Hemminger
2023-08-16  8:29     ` [EXT] " Volodymyr Fialko
2023-08-14 16:31   ` [PATCH v8 3/6] latencystats: use " Stephen Hemminger
2023-08-14 16:31   ` [PATCH v8 4/6] vhost: use logtype instead of RTE_LOGTYPE_USER1 Stephen Hemminger
2023-08-14 16:31   ` [PATCH v8 5/6] ipsec: fix usage " Stephen Hemminger
2023-08-14 16:31   ` [PATCH v8 6/6] power: use a dynamic logtype for guest channel Stephen Hemminger
2023-08-14 17:41   ` [PATCH v8 0/6] Convert use of RTE_LOGTYPE_USER1 in libraries Morten Brørup
2023-12-04 12:25   ` David Marchand

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).