DPDK patches and discussions
 help / color / mirror / Atom feed
From: David Marchand <david.marchand@redhat.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, ferruh.yigit@amd.com,
	bruce.richardson@intel.com, stephen@networkplumber.org,
	Nicolas Chautru <nicolas.chautru@intel.com>,
	Cristian Dumitrescu <cristian.dumitrescu@intel.com>,
	Fan Zhang <fanzhang.oss@gmail.com>,
	Ashish Gupta <ashish.gupta@marvell.com>,
	Akhil Goyal <gakhil@marvell.com>,
	Chengwen Feng <fengchengwen@huawei.com>,
	Kevin Laatz <kevin.laatz@intel.com>,
	Jerin Jacob <jerinj@marvell.com>,
	Erik Gabriel Carrillo <erik.g.carrillo@intel.com>,
	Elena Agostini <eagostini@nvidia.com>,
	Kiran Kumar K <kirankumark@marvell.com>,
	Nithin Dabilpuram <ndabilpuram@marvell.com>,
	Zhirun Yan <zhirun.yan@intel.com>,
	Srikanth Yalavarthi <syalavarthi@marvell.com>,
	Jasvinder Singh <jasvinder.singh@intel.com>,
	Pavan Nikhilesh <pbhagavatula@marvell.com>,
	Sachin Saxena <sachin.saxena@nxp.com>,
	Hemant Agrawal <hemant.agrawal@nxp.com>,
	Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Subject: [RFC 3/3] lib: use per line logging
Date: Fri, 17 Nov 2023 14:18:24 +0100	[thread overview]
Message-ID: <20231117131824.1977792-4-david.marchand@redhat.com> (raw)
In-Reply-To: <20231117131824.1977792-1-david.marchand@redhat.com>

Use RTE_LOG_LINE in existing macros that append a \n.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 lib/bbdev/rte_bbdev.c                      |  3 ++-
 lib/cfgfile/rte_cfgfile.c                  |  4 ++--
 lib/compressdev/rte_compressdev_internal.h |  5 +++--
 lib/cryptodev/rte_cryptodev.h              | 16 ++++++++--------
 lib/dmadev/rte_dmadev.c                    |  6 ++++--
 lib/eventdev/eventdev_pmd.h                |  8 ++++----
 lib/eventdev/rte_event_timer_adapter.c     | 17 ++++++++++-------
 lib/gpudev/gpudev.c                        |  6 ++++--
 lib/graph/graph_private.h                  |  5 +++--
 lib/metrics/rte_metrics_telemetry.c        |  4 ++--
 lib/mldev/rte_mldev.h                      |  5 +++--
 lib/net/rte_net_crc.c                      |  8 ++++----
 lib/node/node_private.h                    |  6 ++++--
 lib/rawdev/rte_rawdev_pmd.h                |  4 ++--
 lib/rcu/rte_rcu_qsbr.h                     |  9 ++++-----
 lib/stack/stack_pvt.h                      |  4 ++--
 16 files changed, 61 insertions(+), 49 deletions(-)

diff --git a/lib/bbdev/rte_bbdev.c b/lib/bbdev/rte_bbdev.c
index e09bb97abb..a61aa599aa 100644
--- a/lib/bbdev/rte_bbdev.c
+++ b/lib/bbdev/rte_bbdev.c
@@ -28,10 +28,11 @@
 
 /* BBDev library logging ID */
 RTE_LOG_REGISTER_DEFAULT(bbdev_logtype, NOTICE);
+#define RTE_LOGTYPE_BBDEV bbdev_logtype
 
 /* Helper macro for logging */
 #define rte_bbdev_log(level, fmt, ...) \
-	rte_log(RTE_LOG_ ## level, bbdev_logtype, fmt "\n", ##__VA_ARGS__)
+	RTE_LOG_LINE(level, BBDEV, fmt , ##__VA_ARGS__)
 
 #define rte_bbdev_log_debug(fmt, ...) \
 	rte_bbdev_log(DEBUG, RTE_STR(__LINE__) ":%s() " fmt, __func__, \
diff --git a/lib/cfgfile/rte_cfgfile.c b/lib/cfgfile/rte_cfgfile.c
index 2f9cc0722a..6a5e4fd942 100644
--- a/lib/cfgfile/rte_cfgfile.c
+++ b/lib/cfgfile/rte_cfgfile.c
@@ -29,10 +29,10 @@ struct rte_cfgfile {
 
 /* Setting up dynamic logging 8< */
 RTE_LOG_REGISTER_DEFAULT(cfgfile_logtype, INFO);
+#define RTE_LOGTYPE_CFGFILE cfgfile_logtype
 
 #define CFG_LOG(level, fmt, args...)					\
-	rte_log(RTE_LOG_ ## level, cfgfile_logtype, "%s(): " fmt "\n",	\
-		__func__, ## args)
+	RTE_LOG_LINE(level, CFGFILE, "%s(): " fmt, __func__, ## args)
 /* >8 End of setting up dynamic logging */
 
 /** when we resize a file structure, how many extra entries
diff --git a/lib/compressdev/rte_compressdev_internal.h b/lib/compressdev/rte_compressdev_internal.h
index b3b193e3ee..34d6d95649 100644
--- a/lib/compressdev/rte_compressdev_internal.h
+++ b/lib/compressdev/rte_compressdev_internal.h
@@ -21,9 +21,10 @@ extern "C" {
 
 /* Logging Macros */
 extern int compressdev_logtype;
+#define RTE_LOGTYPE_COMPRESSDEV compressdev_logtype
+
 #define COMPRESSDEV_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, compressdev_logtype, "%s(): " fmt "\n", \
-			__func__, ##args)
+	RTE_LOG_LINE(level, COMPRESSDEV, "%s(): " fmt, __func__, ##args)
 
 /**
  * Dequeue processed packets from queue pair of a device.
diff --git a/lib/cryptodev/rte_cryptodev.h b/lib/cryptodev/rte_cryptodev.h
index aaeaf294e6..5131d2d947 100644
--- a/lib/cryptodev/rte_cryptodev.h
+++ b/lib/cryptodev/rte_cryptodev.h
@@ -31,23 +31,23 @@ extern const char **rte_cyptodev_names;
 /* Logging Macros */
 
 #define CDEV_LOG_ERR(...) \
-	RTE_LOG(ERR, CRYPTODEV, \
-		RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
+	RTE_LOG_LINE(ERR, CRYPTODEV, \
+		RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,), \
 			__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
 
 #define CDEV_LOG_INFO(...) \
-	RTE_LOG(INFO, CRYPTODEV, \
-		RTE_FMT(RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
+	RTE_LOG_LINE(INFO, CRYPTODEV, \
+		RTE_FMT(RTE_FMT_HEAD(__VA_ARGS__,), \
 			RTE_FMT_TAIL(__VA_ARGS__,)))
 
 #define CDEV_LOG_DEBUG(...) \
-	RTE_LOG(DEBUG, CRYPTODEV, \
-		RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
+	RTE_LOG_LINE(DEBUG, CRYPTODEV, \
+		RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,), \
 			__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
 
 #define CDEV_PMD_TRACE(...) \
-	RTE_LOG(DEBUG, CRYPTODEV, \
-		RTE_FMT("[%s] %s: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
+	RTE_LOG_LINE(DEBUG, CRYPTODEV, \
+		RTE_FMT("[%s] %s: " RTE_FMT_HEAD(__VA_ARGS__,), \
 			dev, __func__, RTE_FMT_TAIL(__VA_ARGS__,)))
 
 /**
diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c
index 009a21849a..c1a166858c 100644
--- a/lib/dmadev/rte_dmadev.c
+++ b/lib/dmadev/rte_dmadev.c
@@ -32,9 +32,11 @@ static struct {
 } *dma_devices_shared_data;
 
 RTE_LOG_REGISTER_DEFAULT(rte_dma_logtype, INFO);
+#define RTE_LOGTYPE_DMA rte_dma_logtype
+
 #define RTE_DMA_LOG(level, ...) \
-	rte_log(RTE_LOG_ ## level, rte_dma_logtype, RTE_FMT("dma: " \
-		RTE_FMT_HEAD(__VA_ARGS__,) "\n", RTE_FMT_TAIL(__VA_ARGS__,)))
+	RTE_LOG_LINE(level, DMA, RTE_FMT("dma: " RTE_FMT_HEAD(__VA_ARGS__,), \
+		RTE_FMT_TAIL(__VA_ARGS__,)))
 
 int
 rte_dma_dev_max(size_t dev_max)
diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h
index 2ec5aec0a8..50cf7d9057 100644
--- a/lib/eventdev/eventdev_pmd.h
+++ b/lib/eventdev/eventdev_pmd.h
@@ -33,14 +33,14 @@ extern "C" {
 
 /* Logging Macros */
 #define RTE_EDEV_LOG_ERR(...) \
-	RTE_LOG(ERR, EVENTDEV, \
-		RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
+	RTE_LOG_LINE(ERR, EVENTDEV, \
+		RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,), \
 			__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
 
 #ifdef RTE_LIBRTE_EVENTDEV_DEBUG
 #define RTE_EDEV_LOG_DEBUG(...) \
-	RTE_LOG(DEBUG, EVENTDEV, \
-		RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
+	RTE_LOG_LINE(DEBUG, EVENTDEV, \
+		RTE_FMT("%s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,), \
 			__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
 #else
 #define RTE_EDEV_LOG_DEBUG(...) (void)0
diff --git a/lib/eventdev/rte_event_timer_adapter.c b/lib/eventdev/rte_event_timer_adapter.c
index 3f22e85173..6ebb7b257e 100644
--- a/lib/eventdev/rte_event_timer_adapter.c
+++ b/lib/eventdev/rte_event_timer_adapter.c
@@ -30,27 +30,30 @@
 #define DATA_MZ_NAME_FORMAT "rte_event_timer_adapter_data_%d"
 
 RTE_LOG_REGISTER_SUFFIX(evtim_logtype, adapter.timer, NOTICE);
+#define RTE_LOGTYPE_EVTIM evtim_logtype
 RTE_LOG_REGISTER_SUFFIX(evtim_buffer_logtype, adapter.timer, NOTICE);
+#define RTE_LOGTYPE_EVTIM_BUF evtim_buffer_logtype
 RTE_LOG_REGISTER_SUFFIX(evtim_svc_logtype, adapter.timer.svc, NOTICE);
+#define RTE_LOGTYPE_EVTIM_SVC evtim_svc_logtype
 
 static struct rte_event_timer_adapter *adapters;
 
 static const struct event_timer_adapter_ops swtim_ops;
 
 #define EVTIM_LOG(level, logtype, ...) \
-	rte_log(RTE_LOG_ ## level, logtype, \
-		RTE_FMT("EVTIMER: %s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,) \
-			"\n", __func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
+	RTE_LOG_LINE(level, logtype, \
+		RTE_FMT("EVTIMER: %s() line %u: " RTE_FMT_HEAD(__VA_ARGS__,), \
+			__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__,)))
 
-#define EVTIM_LOG_ERR(...) EVTIM_LOG(ERR, evtim_logtype, __VA_ARGS__)
+#define EVTIM_LOG_ERR(...) EVTIM_LOG(ERR, EVTIM, __VA_ARGS__)
 
 #ifdef RTE_LIBRTE_EVENTDEV_DEBUG
 #define EVTIM_LOG_DBG(...) \
-	EVTIM_LOG(DEBUG, evtim_logtype, __VA_ARGS__)
+	EVTIM_LOG(DEBUG, EVTIM, __VA_ARGS__)
 #define EVTIM_BUF_LOG_DBG(...) \
-	EVTIM_LOG(DEBUG, evtim_buffer_logtype, __VA_ARGS__)
+	EVTIM_LOG(DEBUG, EVTIM_BUF, __VA_ARGS__)
 #define EVTIM_SVC_LOG_DBG(...) \
-	EVTIM_LOG(DEBUG, evtim_svc_logtype, __VA_ARGS__)
+	EVTIM_LOG(DEBUG, EVTIM_SVC, __VA_ARGS__)
 #else
 #define EVTIM_LOG_DBG(...) (void)0
 #define EVTIM_BUF_LOG_DBG(...) (void)0
diff --git a/lib/gpudev/gpudev.c b/lib/gpudev/gpudev.c
index 6845d18b4d..79118c3e94 100644
--- a/lib/gpudev/gpudev.c
+++ b/lib/gpudev/gpudev.c
@@ -17,9 +17,11 @@
 
 /* Logging */
 RTE_LOG_REGISTER_DEFAULT(gpu_logtype, NOTICE);
+#define RTE_LOGTYPE_GPUDEV gpu_logtype
+
 #define GPU_LOG(level, ...) \
-	rte_log(RTE_LOG_ ## level, gpu_logtype, RTE_FMT("gpu: " \
-		RTE_FMT_HEAD(__VA_ARGS__, ) "\n", RTE_FMT_TAIL(__VA_ARGS__, )))
+	RTE_LOG_LINE(level, GPUDEV, RTE_FMT("gpu: " RTE_FMT_HEAD(__VA_ARGS__, ), \
+		RTE_FMT_TAIL(__VA_ARGS__, )))
 
 /* Set any driver error as EPERM */
 #define GPU_DRV_RET(function) \
diff --git a/lib/graph/graph_private.h b/lib/graph/graph_private.h
index d0ef13b205..672a034287 100644
--- a/lib/graph/graph_private.h
+++ b/lib/graph/graph_private.h
@@ -18,10 +18,11 @@
 #include "rte_graph_worker.h"
 
 extern int rte_graph_logtype;
+#define RTE_LOGTYPE_GRAPH rte_graph_logtype
 
 #define GRAPH_LOG(level, ...)                                                  \
-	rte_log(RTE_LOG_##level, rte_graph_logtype,                            \
-		RTE_FMT("GRAPH: %s():%u " RTE_FMT_HEAD(__VA_ARGS__, ) "\n",    \
+	RTE_LOG_LINE(level, GRAPH,                                             \
+		RTE_FMT("GRAPH: %s():%u " RTE_FMT_HEAD(__VA_ARGS__, ),         \
 			__func__, __LINE__, RTE_FMT_TAIL(__VA_ARGS__, )))
 
 #define graph_err(...) GRAPH_LOG(ERR, __VA_ARGS__)
diff --git a/lib/metrics/rte_metrics_telemetry.c b/lib/metrics/rte_metrics_telemetry.c
index 1d133e1f8c..169590fdb7 100644
--- a/lib/metrics/rte_metrics_telemetry.c
+++ b/lib/metrics/rte_metrics_telemetry.c
@@ -16,11 +16,11 @@
 struct telemetry_metrics_data tel_met_data;
 
 int metrics_log_level;
+#define RTE_LOGTYPE_METRICS metrics_log_level
 
 /* Logging Macros */
 #define METRICS_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ##level, metrics_log_level, "%s(): "fmt "\n", \
-		__func__, ##args)
+	RTE_LOG_LINE(level, METRICS, "%s(): "fmt, __func__, ##args)
 
 #define METRICS_LOG_ERR(fmt, args...) \
 	METRICS_LOG(ERR, fmt, ## args)
diff --git a/lib/mldev/rte_mldev.h b/lib/mldev/rte_mldev.h
index 63b2670bb0..5cf6f0566f 100644
--- a/lib/mldev/rte_mldev.h
+++ b/lib/mldev/rte_mldev.h
@@ -144,9 +144,10 @@ extern "C" {
 
 /* Logging Macro */
 extern int rte_ml_dev_logtype;
+#define RTE_LOGTYPE_MLDEV rte_ml_dev_logtype
 
-#define RTE_MLDEV_LOG(level, fmt, args...)                                                         \
-	rte_log(RTE_LOG_##level, rte_ml_dev_logtype, "%s(): " fmt "\n", __func__, ##args)
+#define RTE_MLDEV_LOG(level, fmt, args...) \
+	RTE_LOG_LINE(level, MLDEV, "%s(): " fmt, __func__, ##args)
 
 #define RTE_ML_STR_MAX 128
 /**< Maximum length of name string */
diff --git a/lib/net/rte_net_crc.c b/lib/net/rte_net_crc.c
index 900d6de7f4..b401ea3dd8 100644
--- a/lib/net/rte_net_crc.c
+++ b/lib/net/rte_net_crc.c
@@ -70,11 +70,11 @@ static const rte_net_crc_handler handlers_neon[] = {
 
 static uint16_t max_simd_bitwidth;
 
-#define NET_LOG(level, fmt, args...)					\
-	rte_log(RTE_LOG_ ## level, libnet_logtype, "%s(): " fmt "\n",	\
-		__func__, ## args)
-
 RTE_LOG_REGISTER_DEFAULT(libnet_logtype, INFO);
+#define RTE_LOGTYPE_NET libnet_logtype
+
+#define NET_LOG(level, fmt, args...) \
+	RTE_LOG_LINE(level, NET, "%s(): " fmt, __func__, ## args)
 
 /* Scalar handling */
 
diff --git a/lib/node/node_private.h b/lib/node/node_private.h
index 26135aaa5b..5702146db4 100644
--- a/lib/node/node_private.h
+++ b/lib/node/node_private.h
@@ -11,9 +11,11 @@
 #include <rte_mbuf_dyn.h>
 
 extern int rte_node_logtype;
+#define RTE_LOGTYPE_NODE rte_node_logtype
+
 #define NODE_LOG(level, node_name, ...)                                        \
-	rte_log(RTE_LOG_##level, rte_node_logtype,                             \
-		RTE_FMT("NODE %s: %s():%u " RTE_FMT_HEAD(__VA_ARGS__, ) "\n",  \
+	RTE_LOG_LINE(level, NODE,                                              \
+		RTE_FMT("NODE %s: %s():%u " RTE_FMT_HEAD(__VA_ARGS__, ),       \
 			node_name, __func__, __LINE__,                         \
 			RTE_FMT_TAIL(__VA_ARGS__, )))
 
diff --git a/lib/rawdev/rte_rawdev_pmd.h b/lib/rawdev/rte_rawdev_pmd.h
index 7b9ef1d09f..7173282c66 100644
--- a/lib/rawdev/rte_rawdev_pmd.h
+++ b/lib/rawdev/rte_rawdev_pmd.h
@@ -27,11 +27,11 @@ extern "C" {
 #include "rte_rawdev.h"
 
 extern int librawdev_logtype;
+#define RTE_LOGTYPE_RAWDEV librawdev_logtype
 
 /* Logging Macros */
 #define RTE_RDEV_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, librawdev_logtype, "%s(): " fmt "\n", \
-		__func__, ##args)
+	RTE_LOG_LINE(level, RAWDEV, "%s(): " fmt, __func__, ##args)
 
 #define RTE_RDEV_ERR(fmt, args...) \
 	RTE_RDEV_LOG(ERR, fmt, ## args)
diff --git a/lib/rcu/rte_rcu_qsbr.h b/lib/rcu/rte_rcu_qsbr.h
index 6b908e7ee0..23c9f89805 100644
--- a/lib/rcu/rte_rcu_qsbr.h
+++ b/lib/rcu/rte_rcu_qsbr.h
@@ -36,20 +36,19 @@ extern "C" {
 #include <rte_ring.h>
 
 extern int rte_rcu_log_type;
+#define RTE_LOGTYPE_RCU rte_rcu_log_type
 
 #if RTE_LOG_DP_LEVEL >= RTE_LOG_DEBUG
 #define __RTE_RCU_DP_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ## level, rte_rcu_log_type, \
-		"%s(): " fmt "\n", __func__, ## args)
+	RTE_LOG_LINE(level, RCU, "%s(): " fmt, __func__, ## args)
 #else
 #define __RTE_RCU_DP_LOG(level, fmt, args...)
 #endif
 
 #if defined(RTE_LIBRTE_RCU_DEBUG)
-#define __RTE_RCU_IS_LOCK_CNT_ZERO(v, thread_id, level, fmt, args...) do {\
+#define __RTE_RCU_IS_LOCK_CNT_ZERO(v, thread_id, level, fmt, args...) do { \
 	if (v->qsbr_cnt[thread_id].lock_cnt) \
-		rte_log(RTE_LOG_ ## level, rte_rcu_log_type, \
-			"%s(): " fmt "\n", __func__, ## args); \
+		RTE_LOG_LINE(level, RCU, "%s(): " fmt, __func__, ## args); \
 } while (0)
 #else
 #define __RTE_RCU_IS_LOCK_CNT_ZERO(v, thread_id, level, fmt, args...)
diff --git a/lib/stack/stack_pvt.h b/lib/stack/stack_pvt.h
index c7eab4027d..2dce42a9da 100644
--- a/lib/stack/stack_pvt.h
+++ b/lib/stack/stack_pvt.h
@@ -8,10 +8,10 @@
 #include <rte_log.h>
 
 extern int stack_logtype;
+#define RTE_LOGTYPE_STACK stack_logtype
 
 #define STACK_LOG(level, fmt, args...) \
-	rte_log(RTE_LOG_ ##level, stack_logtype, "%s(): "fmt "\n", \
-		__func__, ##args)
+	RTE_LOG_LINE(level, STACK, "%s(): "fmt, __func__, ##args)
 
 #define STACK_LOG_ERR(fmt, args...) \
 	STACK_LOG(ERR, fmt, ## args)
-- 
2.41.0


  parent reply	other threads:[~2023-11-17 13:19 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-17 13:18 [RFC 0/3] Detect superfluous newline in logs David Marchand
2023-11-17 13:18 ` [RFC 1/3] lib: remove redundant newline from logs David Marchand
2023-11-17 13:18 ` [RFC 2/3] log: add a per line log helper David Marchand
2023-11-17 13:18 ` David Marchand [this message]
2023-11-17 13:27 ` [RFC 0/3] Detect superfluous newline in logs Bruce Richardson
2023-11-17 13:48   ` David Marchand
2023-11-17 14:11     ` Bruce Richardson
2023-11-17 14:21       ` David Marchand
2023-11-17 13:47 ` Morten Brørup
2023-11-17 14:09   ` David Marchand
2023-11-17 14:17     ` Morten Brørup
2023-12-08 14:59 ` [RFC v2 00/14] " David Marchand
2023-12-08 14:59   ` [RFC v2 01/14] hash: remove some dead code David Marchand
2023-12-08 16:53     ` Stephen Hemminger
2023-12-08 20:46     ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 02/14] regexdev: fix logtype register David Marchand
2023-12-08 16:58     ` Stephen Hemminger
2023-12-08 20:46     ` Tyler Retzlaff
2023-12-14 10:11     ` Ori Kam
2023-12-08 14:59   ` [RFC v2 03/14] lib: use dedicated logtypes David Marchand
2023-12-08 17:00     ` Stephen Hemminger
2023-12-08 20:49     ` Tyler Retzlaff
2023-12-16  9:47     ` Andrew Rybchenko
2023-12-08 14:59   ` [RFC v2 04/14] lib: add newline in logs David Marchand
2023-12-08 17:01     ` Stephen Hemminger
2023-12-11 12:38       ` David Marchand
2023-12-08 20:50     ` Tyler Retzlaff
2023-12-16  9:43     ` Andrew Rybchenko
2023-12-08 14:59   ` [RFC v2 05/14] lib: remove redundant newline from logs David Marchand
2023-12-08 17:02     ` Stephen Hemminger
2023-12-09  7:15     ` fengchengwen
2023-12-11  8:48     ` Mattias Rönnblom
2023-12-08 14:59   ` [RFC v2 06/14] eal/linux: remove log paraphrasing the doc David Marchand
2023-12-08 17:03     ` Stephen Hemminger
2023-12-08 20:54     ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 07/14] bpf: remove log level in internal helper David Marchand
2023-12-08 17:04     ` Stephen Hemminger
2023-12-08 21:02     ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 08/14] lib: simplify multilines log messages David Marchand
2023-12-08 17:05     ` Stephen Hemminger
2023-12-16  9:26       ` Andrew Rybchenko
2023-12-08 21:03     ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 09/14] rcu: introduce a logging helper David Marchand
2023-12-08 17:08     ` Stephen Hemminger
2023-12-08 18:26     ` Honnappa Nagarahalli
2023-12-08 21:27     ` Tyler Retzlaff
2023-12-12 15:00       ` David Marchand
2023-12-12 19:11         ` Tyler Retzlaff
2023-12-18  9:37           ` David Marchand
2023-12-18 19:52             ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 10/14] vhost: improve log for memory dumping configuration David Marchand
2023-12-08 17:14     ` Stephen Hemminger
2023-12-08 14:59   ` [RFC v2 11/14] log: add a per line log helper David Marchand
2023-12-08 17:15     ` Stephen Hemminger
2023-12-09  7:21     ` fengchengwen
2023-12-08 14:59   ` [RFC v2 12/14] lib: convert to per line logging David Marchand
2023-12-08 17:16     ` Stephen Hemminger
2023-12-11 12:34       ` David Marchand
2023-12-16  9:30     ` Andrew Rybchenko
2023-12-08 14:59   ` [RFC v2 13/14] lib: replace logging helpers David Marchand
2023-12-08 17:18     ` Stephen Hemminger
2023-12-11 12:36       ` David Marchand
2023-12-16  9:42     ` Andrew Rybchenko
2023-12-08 14:59   ` [RFC v2 14/14] lib: use per line logging in helpers David Marchand
2023-12-09  7:19     ` fengchengwen
2023-12-16  9:41     ` Andrew Rybchenko
2023-12-18  9:27 ` [PATCH v3 00/14] Detect superfluous newline in logs David Marchand
2023-12-18  9:27   ` [PATCH v3 01/14] hash: remove some dead code David Marchand
2023-12-18  9:27   ` [PATCH v3 02/14] regexdev: fix logtype register David Marchand
2023-12-18  9:27   ` [PATCH v3 03/14] lib: use dedicated logtypes and macros David Marchand
2023-12-18  9:27   ` [PATCH v3 04/14] lib: add newline in logs David Marchand
2023-12-18  9:27   ` [PATCH v3 05/14] lib: remove redundant newline from logs David Marchand
2023-12-18  9:27   ` [PATCH v3 06/14] eal/linux: remove log paraphrasing the doc David Marchand
2023-12-18  9:27   ` [PATCH v3 07/14] bpf: remove log level in internal helper David Marchand
2023-12-18  9:27   ` [PATCH v3 08/14] lib: simplify multilines log messages David Marchand
2023-12-18 10:05     ` Andrew Rybchenko
2023-12-18  9:27   ` [PATCH v3 09/14] rcu: introduce a logging helper David Marchand
2023-12-18  9:27   ` [PATCH v3 10/14] vhost: improve log for memory dumping configuration David Marchand
2023-12-18  9:27   ` [PATCH v3 11/14] log: add a per line log helper David Marchand
2023-12-18  9:27   ` [PATCH v3 12/14] lib: convert to per line logging David Marchand
2023-12-18  9:27   ` [PATCH v3 13/14] lib: replace logging helpers David Marchand
2023-12-18  9:27   ` [PATCH v3 14/14] lib: use per line logging in helpers David Marchand
2023-12-18 14:37 ` [PATCH v4 00/14] Detect superfluous newline in logs David Marchand
2023-12-18 14:37   ` [PATCH v4 01/14] hash: remove some dead code David Marchand
2023-12-18 14:37   ` [PATCH v4 02/14] regexdev: fix logtype register David Marchand
2023-12-18 16:46     ` Stephen Hemminger
2023-12-18 14:37   ` [PATCH v4 03/14] lib: use dedicated logtypes and macros David Marchand
2023-12-18 14:37   ` [PATCH v4 04/14] lib: add newline in logs David Marchand
2023-12-18 14:37   ` [PATCH v4 05/14] lib: remove redundant newline from logs David Marchand
2023-12-18 14:37   ` [PATCH v4 06/14] eal/linux: remove log paraphrasing the doc David Marchand
2023-12-18 14:37   ` [PATCH v4 07/14] bpf: remove log level in internal helper David Marchand
2023-12-18 14:37   ` [PATCH v4 08/14] lib: simplify multilines log messages David Marchand
2023-12-18 14:37   ` [PATCH v4 09/14] rcu: introduce a logging helper David Marchand
2023-12-18 14:37   ` [PATCH v4 10/14] vhost: improve log for memory dumping configuration David Marchand
2023-12-18 14:38   ` [PATCH v4 11/14] log: add a per line log helper David Marchand
2023-12-19 15:45     ` Thomas Monjalon
2023-12-19 17:16       ` Stephen Hemminger
2023-12-20  8:26         ` David Marchand
2023-12-18 14:38   ` [PATCH v4 12/14] lib: convert to per line logging David Marchand
2023-12-20 13:46     ` Thomas Monjalon
2023-12-20 14:00       ` David Marchand
2023-12-18 14:38   ` [PATCH v4 13/14] lib: replace logging helpers David Marchand
2023-12-18 14:38   ` [PATCH v4 14/14] lib: use per line logging in helpers David Marchand
2023-12-20 15:35 ` [PATCH v5 00/13] Detect superfluous newline in logs David Marchand
2023-12-20 15:35   ` [PATCH v5 01/13] hash: remove some dead code David Marchand
2023-12-21  5:58     ` Ruifeng Wang
2023-12-21  6:26     ` Ruifeng Wang
2023-12-20 15:35   ` [PATCH v5 02/13] regexdev: fix logtype register David Marchand
2023-12-20 15:35   ` [PATCH v5 03/13] lib: use dedicated logtypes and macros David Marchand
2023-12-20 15:35   ` [PATCH v5 04/13] lib: add newline in logs David Marchand
2023-12-20 15:35   ` [PATCH v5 05/13] lib: remove redundant newline from logs David Marchand
2023-12-20 15:35   ` [PATCH v5 06/13] eal/linux: remove log paraphrasing the doc David Marchand
2023-12-20 15:36   ` [PATCH v5 07/13] bpf: remove log level in internal helper David Marchand
2023-12-20 15:36   ` [PATCH v5 08/13] lib: simplify multilines log messages David Marchand
2023-12-20 15:36   ` [PATCH v5 09/13] lib: add more logging helpers David Marchand
2023-12-20 15:36   ` [PATCH v5 10/13] vhost: improve log for memory dumping configuration David Marchand
2023-12-20 15:36   ` [PATCH v5 11/13] log: add a per line log helper David Marchand
2023-12-20 15:42     ` David Marchand
2023-12-20 15:36   ` [PATCH v5 12/13] lib: replace logging helpers David Marchand
2023-12-20 15:36   ` [PATCH v5 13/13] lib: use per line logging in helpers David Marchand
2023-12-21  9:31   ` [PATCH v5 00/13] Detect superfluous newline in logs David Marchand
2023-12-21 16:32   ` Stephen Hemminger

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=20231117131824.1977792-4-david.marchand@redhat.com \
    --to=david.marchand@redhat.com \
    --cc=ashish.gupta@marvell.com \
    --cc=bruce.richardson@intel.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=dev@dpdk.org \
    --cc=eagostini@nvidia.com \
    --cc=erik.g.carrillo@intel.com \
    --cc=fanzhang.oss@gmail.com \
    --cc=fengchengwen@huawei.com \
    --cc=ferruh.yigit@amd.com \
    --cc=gakhil@marvell.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=honnappa.nagarahalli@arm.com \
    --cc=jasvinder.singh@intel.com \
    --cc=jerinj@marvell.com \
    --cc=kevin.laatz@intel.com \
    --cc=kirankumark@marvell.com \
    --cc=ndabilpuram@marvell.com \
    --cc=nicolas.chautru@intel.com \
    --cc=pbhagavatula@marvell.com \
    --cc=sachin.saxena@nxp.com \
    --cc=stephen@networkplumber.org \
    --cc=syalavarthi@marvell.com \
    --cc=thomas@monjalon.net \
    --cc=zhirun.yan@intel.com \
    /path/to/YOUR_REPLY

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

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