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

Message ID 1516873582-169644-1-git-send-email-harry.van.haaren@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Van Haaren, Harry Jan. 25, 2018, 9:46 a.m. UTC
  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@intel.com>

---

@Maintainer:
Cc: jerin.jacob@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
  

Comments

Thomas Monjalon Jan. 31, 2018, 8:37 a.m. UTC | #1
25/01/2018 10:46, Harry van Haaren:
> 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@intel.com>

Applied, thanks
  

Patch

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_ */