From 7f40546b347044a30617bf71fd191165643cf8e3 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Tue, 16 Jul 2019 08:40:08 -0700 Subject: [PATCH] net/e1000: use dynamic log type for Tx/Rx debug The generic RTE_LOGTYPE_PMD is a historical relic and should not be used. Every driver should register the logtypes for itself. Signed-off-by: Stephen Hemminger Reviewed-by: Ferruh Yigit --- drivers/net/e1000/e1000_logs.c | 48 +++++++++++++++++++++++++++------- drivers/net/e1000/e1000_logs.h | 25 +++++++++++------- 2 files changed, 55 insertions(+), 18 deletions(-) diff --git a/drivers/net/e1000/e1000_logs.c b/drivers/net/e1000/e1000_logs.c index 22173939f5..231f5c03ef 100644 --- a/drivers/net/e1000/e1000_logs.c +++ b/drivers/net/e1000/e1000_logs.c @@ -8,19 +8,49 @@ int e1000_logtype_init; int e1000_logtype_driver; +#ifdef RTE_LIBRTE_E1000_DEBUG_RX +int e1000_logtype_rx; +#endif +#ifdef RTE_LIBRTE_E1000_DEBUG_TX +int e1000_logtype_tx; +#endif +#ifdef RTE_LIBRTE_E1000_DEBUG_TX_FREE +int e1000_logtype_tx_free; +#endif + /* avoids double registering of logs if EM and IGB drivers are in use */ static int e1000_log_initialized; void e1000_igb_init_log(void) { - if (!e1000_log_initialized) { - e1000_logtype_init = rte_log_register("pmd.net.e1000.init"); - if (e1000_logtype_init >= 0) - rte_log_set_level(e1000_logtype_init, RTE_LOG_NOTICE); - e1000_logtype_driver = rte_log_register("pmd.net.e1000.driver"); - if (e1000_logtype_driver >= 0) - rte_log_set_level(e1000_logtype_driver, RTE_LOG_NOTICE); - e1000_log_initialized = 1; - } + if (e1000_log_initialized) + return; + + e1000_logtype_init = rte_log_register("pmd.net.e1000.init"); + if (e1000_logtype_init >= 0) + rte_log_set_level(e1000_logtype_init, RTE_LOG_NOTICE); + e1000_logtype_driver = rte_log_register("pmd.net.e1000.driver"); + if (e1000_logtype_driver >= 0) + rte_log_set_level(e1000_logtype_driver, RTE_LOG_NOTICE); + +#ifdef RTE_LIBRTE_E1000_DEBUG_RX + e1000_logtype_rx = rte_log_register("pmd.net.e1000.rx"); + if (e1000_logtype_rx >= 0) + rte_log_set_level(e1000_logtype_rx, RTE_LOG_DEBUG); +#endif + +#ifdef RTE_LIBRTE_E1000_DEBUG_TX + e1000_logtype_tx = rte_log_register("pmd.net.e1000.tx"); + if (e1000_logtype_tx >= 0) + rte_log_set_level(e1000_logtype_tx, RTE_LOG_DEBUG); +#endif + +#ifdef RTE_LIBRTE_E1000_DEBUG_TX_FREE + e1000_logtype_tx_free = rte_log_register("pmd.net.e1000.tx_free"); + if (e1000_logtype_tx_free >= 0) + rte_log_set_level(e1000_logtype_tx_free, RTE_LOG_DEBUG); +#endif + + e1000_log_initialized = 1; } diff --git a/drivers/net/e1000/e1000_logs.h b/drivers/net/e1000/e1000_logs.h index 69d3d31186..2612134f38 100644 --- a/drivers/net/e1000/e1000_logs.h +++ b/drivers/net/e1000/e1000_logs.h @@ -8,6 +8,7 @@ #include extern int e1000_logtype_init; + #define PMD_INIT_LOG(level, fmt, args...) \ rte_log(RTE_LOG_ ## level, e1000_logtype_init, \ "%s(): " fmt "\n", __func__, ##args) @@ -15,24 +16,30 @@ extern int e1000_logtype_init; #define PMD_INIT_FUNC_TRACE() PMD_INIT_LOG(DEBUG, " >>") #ifdef RTE_LIBRTE_E1000_DEBUG_RX -#define PMD_RX_LOG(level, fmt, args...) \ - RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args) +extern int e1000_logtype_rx; +#define PMD_RX_LOG(level, fmt, args...) \ + rte_log(RTE_LOG_ ## level, e1000_logtype_rx, \ + "%s(): " fmt "\n", __func__, ## args) #else -#define PMD_RX_LOG(level, fmt, args...) do { } while(0) +#define PMD_RX_LOG(level, fmt, args...) do { } while (0) #endif #ifdef RTE_LIBRTE_E1000_DEBUG_TX -#define PMD_TX_LOG(level, fmt, args...) \ - RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args) +extern int e1000_logtype_tx; +#define PMD_TX_LOG(level, fmt, args...) \ + rte_log(RTE_LOG_ ## level, e1000_logtype_tx, \ + "%s(): " fmt "\n", __func__, ## args) #else -#define PMD_TX_LOG(level, fmt, args...) do { } while(0) +#define PMD_TX_LOG(level, fmt, args...) do { } while (0) #endif #ifdef RTE_LIBRTE_E1000_DEBUG_TX_FREE -#define PMD_TX_FREE_LOG(level, fmt, args...) \ - RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args) +extern int e1000_logtype_tx_free; +#define PMD_TX_FREE_LOG(level, fmt, args...) \ + rte_log(RTE_LOG_ ## level, e1000_logtype_tx_free, \ + "%s(): " fmt "\n", __func__, ## args) #else -#define PMD_TX_FREE_LOG(level, fmt, args...) do { } while(0) +#define PMD_TX_FREE_LOG(level, fmt, args...) do { } while (0) #endif extern int e1000_logtype_driver; -- 2.20.1