[dpdk-dev] [PATCH] event/sw: add dynamic logging support

Harry van Haaren harry.van.haaren at intel.com
Thu Jan 25 10:46:22 CET 2018


This commit enables dynamic logging with the SW pmd.
The string "pmd.event.sw" is used to change the verbosity
of the logging output, as per the newly defined log naming.

Signed-off-by: Harry van Haaren <harry.van.haaren at intel.com>

---

@Maintainer:
Cc: jerin.jacob at caviumnetworks.com
This patch is not required for 18.02

---
 config/common_base              |  1 -
 drivers/event/sw/sw_evdev.c     | 12 ++++++++++++
 drivers/event/sw/sw_evdev.h     | 21 +--------------------
 drivers/event/sw/sw_evdev_log.h | 23 +++++++++++++++++++++++
 4 files changed, 36 insertions(+), 21 deletions(-)
 create mode 100644 drivers/event/sw/sw_evdev_log.h

diff --git a/config/common_base b/config/common_base
index 170a389..0bf87aa 100644
--- a/config/common_base
+++ b/config/common_base
@@ -585,7 +585,6 @@ CONFIG_RTE_LIBRTE_PMD_SKELETON_EVENTDEV_DEBUG=n
 # Compile PMD for software event device
 #
 CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV=y
-CONFIG_RTE_LIBRTE_PMD_SW_EVENTDEV_DEBUG=n
 
 #
 # Compile PMD for octeontx sso event device
diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c
index f9daf4f..6672fd8 100644
--- a/drivers/event/sw/sw_evdev.c
+++ b/drivers/event/sw/sw_evdev.c
@@ -929,3 +929,15 @@ static struct rte_vdev_driver evdev_sw_pmd_drv = {
 RTE_PMD_REGISTER_VDEV(EVENTDEV_NAME_SW_PMD, evdev_sw_pmd_drv);
 RTE_PMD_REGISTER_PARAM_STRING(event_sw, NUMA_NODE_ARG "=<int> "
 		SCHED_QUANTA_ARG "=<int>" CREDIT_QUANTA_ARG "=<int>");
+
+/* declared extern in header, for access from other .c files */
+int eventdev_sw_log_level;
+
+RTE_INIT(evdev_sw_init_log);
+static void
+evdev_sw_init_log(void)
+{
+	eventdev_sw_log_level = rte_log_register("pmd.event.sw");
+	if (eventdev_sw_log_level >= 0)
+		rte_log_set_level(eventdev_sw_log_level, RTE_LOG_NOTICE);
+}
diff --git a/drivers/event/sw/sw_evdev.h b/drivers/event/sw/sw_evdev.h
index 7498707..d90b96d 100644
--- a/drivers/event/sw/sw_evdev.h
+++ b/drivers/event/sw/sw_evdev.h
@@ -5,6 +5,7 @@
 #ifndef _SW_EVDEV_H_
 #define _SW_EVDEV_H_
 
+#include "sw_evdev_log.h"
 #include <rte_eventdev.h>
 #include <rte_eventdev_pmd_vdev.h>
 #include <rte_atomic.h>
@@ -64,26 +65,6 @@ static const uint8_t sw_qe_flag_map[] = {
 		QE_FLAG_VALID | QE_FLAG_COMPLETE | QE_FLAG_NOT_EOP,
 };
 
-#ifdef RTE_LIBRTE_PMD_EVDEV_SW_DEBUG
-#define SW_LOG_INFO(fmt, args...) \
-	RTE_LOG(INFO, EVENTDEV, "[%s] %s() line %u: " fmt "\n", \
-			SW_PMD_NAME, \
-			__func__, __LINE__, ## args)
-
-#define SW_LOG_DBG(fmt, args...) \
-	RTE_LOG(DEBUG, EVENTDEV, "[%s] %s() line %u: " fmt "\n", \
-			SW_PMD_NAME, \
-			__func__, __LINE__, ## args)
-#else
-#define SW_LOG_INFO(fmt, args...)
-#define SW_LOG_DBG(fmt, args...)
-#endif
-
-#define SW_LOG_ERR(fmt, args...) \
-	RTE_LOG(ERR, EVENTDEV, "[%s] %s() line %u: " fmt "\n", \
-			SW_PMD_NAME, \
-			__func__, __LINE__, ## args)
-
 /* Records basic event stats at a given point. Used in port and qid structs */
 struct sw_point_stats {
 	uint64_t rx_pkts;
diff --git a/drivers/event/sw/sw_evdev_log.h b/drivers/event/sw/sw_evdev_log.h
new file mode 100644
index 0000000..f76825a
--- /dev/null
+++ b/drivers/event/sw/sw_evdev_log.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2018 Intel Corporation
+ */
+
+#ifndef _SW_EVDEV_LOG_H_
+#define _SW_EVDEV_LOG_H_
+
+extern int eventdev_sw_log_level;
+
+#define SW_LOG_IMPL(level, fmt, args...) \
+	rte_log(RTE_LOG_ ## level, eventdev_sw_log_level, "%s" fmt "\n", \
+			__func__, ##args)
+
+#define SW_LOG_INFO(fmt, args...) \
+	SW_LOG_IMPL(INFO, fmt, ## args)
+
+#define SW_LOG_DBG(fmt, args...) \
+	SW_LOG_IMPL(DEBUG, fmt, ## args)
+
+#define SW_LOG_ERR(fmt, args...) \
+	SW_LOG_IMPL(ERR, fmt, ## args)
+
+#endif /* _SW_EVDEV_LOG_H_ */
-- 
2.7.4



More information about the dev mailing list