[07/12] net/cxgbe: use dynamic logging for debug prints

Message ID 1b6a348acb804f819857f1a3aea58cf4ba5ce00c.1567799552.git.rahul.lakkireddy@chelsio.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series net/cxgbe: bug fixes and updates for CXGBE/CXGBEVF PMD |

Checks

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

Commit Message

Rahul Lakkireddy Sept. 6, 2019, 9:52 p.m. UTC
  Remove compile time flags and use dynamic logging for debug prints.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
---
 config/common_base               |  5 ---
 doc/guides/nics/cxgbe.rst        | 20 -----------
 drivers/net/cxgbe/cxgbe_compat.h | 58 +++++++++++---------------------
 drivers/net/cxgbe/cxgbe_ethdev.c | 16 +++++++++
 4 files changed, 35 insertions(+), 64 deletions(-)
  

Comments

Ferruh Yigit Sept. 27, 2019, 2:37 p.m. UTC | #1
On 9/6/2019 10:52 PM, Rahul Lakkireddy wrote:
> Remove compile time flags and use dynamic logging for debug prints.
> 
> Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
> ---
>  config/common_base               |  5 ---
>  doc/guides/nics/cxgbe.rst        | 20 -----------
>  drivers/net/cxgbe/cxgbe_compat.h | 58 +++++++++++---------------------
>  drivers/net/cxgbe/cxgbe_ethdev.c | 16 +++++++++
>  4 files changed, 35 insertions(+), 64 deletions(-)
> 
> diff --git a/config/common_base b/config/common_base
> index 8ef75c203..43964de6d 100644
> --- a/config/common_base
> +++ b/config/common_base
> @@ -217,11 +217,6 @@ CONFIG_RTE_LIBRTE_BNXT_PMD=y
>  # Compile burst-oriented Chelsio Terminator (CXGBE) PMD
>  #
>  CONFIG_RTE_LIBRTE_CXGBE_PMD=y
> -CONFIG_RTE_LIBRTE_CXGBE_DEBUG=n

+1, thanks.

> -CONFIG_RTE_LIBRTE_CXGBE_DEBUG_REG=n
> -CONFIG_RTE_LIBRTE_CXGBE_DEBUG_MBOX=n

Are above two used on datapath?

> -CONFIG_RTE_LIBRTE_CXGBE_DEBUG_TX=n
> -CONFIG_RTE_LIBRTE_CXGBE_DEBUG_RX=n

Are you sure about these?
If these logs are enabled in datapath, switching to the dynamic log will add
additional checks for logging, most probably per packet.
  
Rahul Lakkireddy Sept. 27, 2019, 7:55 p.m. UTC | #2
On Friday, September 09/27/19, 2019 at 20:07:20 +0530, Ferruh Yigit wrote:
> On 9/6/2019 10:52 PM, Rahul Lakkireddy wrote:
> > Remove compile time flags and use dynamic logging for debug prints.
> > 
> > Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
> > ---
> >  config/common_base               |  5 ---
> >  doc/guides/nics/cxgbe.rst        | 20 -----------
> >  drivers/net/cxgbe/cxgbe_compat.h | 58 +++++++++++---------------------
> >  drivers/net/cxgbe/cxgbe_ethdev.c | 16 +++++++++
> >  4 files changed, 35 insertions(+), 64 deletions(-)
> > 
> > diff --git a/config/common_base b/config/common_base
> > index 8ef75c203..43964de6d 100644
> > --- a/config/common_base
> > +++ b/config/common_base
> > @@ -217,11 +217,6 @@ CONFIG_RTE_LIBRTE_BNXT_PMD=y
> >  # Compile burst-oriented Chelsio Terminator (CXGBE) PMD
> >  #
> >  CONFIG_RTE_LIBRTE_CXGBE_PMD=y
> > -CONFIG_RTE_LIBRTE_CXGBE_DEBUG=n
> 
> +1, thanks.
> 
> > -CONFIG_RTE_LIBRTE_CXGBE_DEBUG_REG=n
> > -CONFIG_RTE_LIBRTE_CXGBE_DEBUG_MBOX=n
> 
> Are above two used on datapath?
> 

MBOX is only used in control path. But, REG is used in both control
and datapath.

> > -CONFIG_RTE_LIBRTE_CXGBE_DEBUG_TX=n
> > -CONFIG_RTE_LIBRTE_CXGBE_DEBUG_RX=n
> 
> Are you sure about these?
> If these logs are enabled in datapath, switching to the dynamic log will add
> additional checks for logging, most probably per packet.

(Sigh)... You're correct! I was too excited about the nifty dynamic
log feature and somehow missed the above obvious point... :(

On second thought, the REG, TX, and RX prints are rarely enabled and
hence I'm going to remove them completely. OTOH, MBOX helped in
debugging several control path issues in the past, so it will be kept
as dynamic log.

Will send v2.

Thanks,
Rahul
  

Patch

diff --git a/config/common_base b/config/common_base
index 8ef75c203..43964de6d 100644
--- a/config/common_base
+++ b/config/common_base
@@ -217,11 +217,6 @@  CONFIG_RTE_LIBRTE_BNXT_PMD=y
 # Compile burst-oriented Chelsio Terminator (CXGBE) PMD
 #
 CONFIG_RTE_LIBRTE_CXGBE_PMD=y
-CONFIG_RTE_LIBRTE_CXGBE_DEBUG=n
-CONFIG_RTE_LIBRTE_CXGBE_DEBUG_REG=n
-CONFIG_RTE_LIBRTE_CXGBE_DEBUG_MBOX=n
-CONFIG_RTE_LIBRTE_CXGBE_DEBUG_TX=n
-CONFIG_RTE_LIBRTE_CXGBE_DEBUG_RX=n
 CONFIG_RTE_LIBRTE_CXGBE_TPUT=y
 
 # NXP DPAA Bus
diff --git a/doc/guides/nics/cxgbe.rst b/doc/guides/nics/cxgbe.rst
index 7a893cc1d..fc74b571c 100644
--- a/doc/guides/nics/cxgbe.rst
+++ b/doc/guides/nics/cxgbe.rst
@@ -104,26 +104,6 @@  enabling debugging options may affect system performance.
 
      This controls compilation of both CXGBE and CXGBEVF PMD.
 
-- ``CONFIG_RTE_LIBRTE_CXGBE_DEBUG`` (default **n**)
-
-  Toggle display of generic debugging messages.
-
-- ``CONFIG_RTE_LIBRTE_CXGBE_DEBUG_REG`` (default **n**)
-
-  Toggle display of registers related run-time check messages.
-
-- ``CONFIG_RTE_LIBRTE_CXGBE_DEBUG_MBOX`` (default **n**)
-
-  Toggle display of firmware mailbox related run-time check messages.
-
-- ``CONFIG_RTE_LIBRTE_CXGBE_DEBUG_TX`` (default **n**)
-
-  Toggle display of transmission data path run-time check messages.
-
-- ``CONFIG_RTE_LIBRTE_CXGBE_DEBUG_RX`` (default **n**)
-
-  Toggle display of receiving data path run-time check messages.
-
 - ``CONFIG_RTE_LIBRTE_CXGBE_TPUT`` (default **y**)
 
   Toggle behavior to prefer Throughput or Latency.
diff --git a/drivers/net/cxgbe/cxgbe_compat.h b/drivers/net/cxgbe/cxgbe_compat.h
index 93df0a775..407cfd869 100644
--- a/drivers/net/cxgbe/cxgbe_compat.h
+++ b/drivers/net/cxgbe/cxgbe_compat.h
@@ -21,55 +21,35 @@ 
 #include <rte_net.h>
 
 extern int cxgbe_logtype;
+extern int cxgbe_reg_logtype;
+extern int cxgbe_mbox_logtype;
+extern int cxgbe_tx_logtype;
+extern int cxgbe_rx_logtype;
 
-#define dev_printf(level, fmt, ...) \
-	rte_log(RTE_LOG_ ## level, cxgbe_logtype, \
+#define dev_printf(level, logtype, fmt, ...) \
+	rte_log(RTE_LOG_ ## level, logtype, \
 		"rte_cxgbe_pmd: " fmt, ##__VA_ARGS__)
 
-#define dev_err(x, fmt, ...) dev_printf(ERR, fmt, ##__VA_ARGS__)
-#define dev_info(x, fmt, ...) dev_printf(INFO, fmt, ##__VA_ARGS__)
-#define dev_warn(x, fmt, ...) dev_printf(WARNING, fmt, ##__VA_ARGS__)
+#define dev_err(x, fmt, ...) \
+	dev_printf(ERR, cxgbe_logtype, fmt, ##__VA_ARGS__)
+#define dev_info(x, fmt, ...) \
+	dev_printf(INFO, cxgbe_logtype, fmt, ##__VA_ARGS__)
+#define dev_warn(x, fmt, ...) \
+	dev_printf(WARNING, cxgbe_logtype, fmt, ##__VA_ARGS__)
+#define dev_debug(x, fmt, ...) \
+	dev_printf(DEBUG, cxgbe_logtype, fmt, ##__VA_ARGS__)
 
-#ifdef RTE_LIBRTE_CXGBE_DEBUG
-#define dev_debug(x, fmt, ...) dev_printf(INFO, fmt, ##__VA_ARGS__)
-#else
-#define dev_debug(x, fmt, ...) do { } while (0)
-#endif
-
-#ifdef RTE_LIBRTE_CXGBE_DEBUG_REG
 #define CXGBE_DEBUG_REG(x, fmt, ...) \
-	dev_printf(INFO, "REG:" fmt, ##__VA_ARGS__)
-#else
-#define CXGBE_DEBUG_REG(x, fmt, ...) do { } while (0)
-#endif
-
-#ifdef RTE_LIBRTE_CXGBE_DEBUG_MBOX
+	dev_printf(DEBUG, cxgbe_reg_logtype, "REG:" fmt, ##__VA_ARGS__)
 #define CXGBE_DEBUG_MBOX(x, fmt, ...) \
-	dev_printf(INFO, "MBOX:" fmt, ##__VA_ARGS__)
-#else
-#define CXGBE_DEBUG_MBOX(x, fmt, ...) do { } while (0)
-#endif
-
-#ifdef RTE_LIBRTE_CXGBE_DEBUG_TX
+	dev_printf(DEBUG, cxgbe_mbox_logtype, "MBOX:" fmt, ##__VA_ARGS__)
 #define CXGBE_DEBUG_TX(x, fmt, ...) \
-	dev_printf(INFO, "TX:" fmt, ##__VA_ARGS__)
-#else
-#define CXGBE_DEBUG_TX(x, fmt, ...) do { } while (0)
-#endif
-
-#ifdef RTE_LIBRTE_CXGBE_DEBUG_RX
+	dev_printf(DEBUG, cxgbe_tx_logtype, "TX:" fmt, ##__VA_ARGS__)
 #define CXGBE_DEBUG_RX(x, fmt, ...) \
-	dev_printf(INFO, "RX:" fmt, ##__VA_ARGS__)
-#else
-#define CXGBE_DEBUG_RX(x, fmt, ...) do { } while (0)
-#endif
+	dev_printf(DEBUG, cxgbe_rx_logtype, "RX:" fmt, ##__VA_ARGS__)
 
-#ifdef RTE_LIBRTE_CXGBE_DEBUG
 #define CXGBE_FUNC_TRACE() \
-	dev_printf(DEBUG, "CXGBE trace: %s\n", __func__)
-#else
-#define CXGBE_FUNC_TRACE() do { } while (0)
-#endif
+	dev_printf(DEBUG, cxgbe_logtype, "CXGBE trace: %s\n", __func__)
 
 #define pr_err(fmt, ...) dev_err(0, fmt, ##__VA_ARGS__)
 #define pr_warn(fmt, ...) dev_warn(0, fmt, ##__VA_ARGS__)
diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index 381dd273d..b78f190f9 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe/cxgbe_ethdev.c
@@ -39,6 +39,10 @@ 
 #include "cxgbe_flow.h"
 
 int cxgbe_logtype;
+int cxgbe_mbox_logtype;
+int cxgbe_reg_logtype;
+int cxgbe_tx_logtype;
+int cxgbe_rx_logtype;
 
 /*
  * Macros needed to support the PCI Device ID Table ...
@@ -1240,4 +1244,16 @@  RTE_INIT(cxgbe_init_log)
 	cxgbe_logtype = rte_log_register("pmd.net.cxgbe");
 	if (cxgbe_logtype >= 0)
 		rte_log_set_level(cxgbe_logtype, RTE_LOG_NOTICE);
+	cxgbe_reg_logtype = rte_log_register("pmd.net.cxgbe.reg");
+	if (cxgbe_reg_logtype >= 0)
+		rte_log_set_level(cxgbe_reg_logtype, RTE_LOG_NOTICE);
+	cxgbe_mbox_logtype = rte_log_register("pmd.net.cxgbe.mbox");
+	if (cxgbe_mbox_logtype >= 0)
+		rte_log_set_level(cxgbe_mbox_logtype, RTE_LOG_NOTICE);
+	cxgbe_tx_logtype = rte_log_register("pmd.net.cxgbe.tx");
+	if (cxgbe_tx_logtype >= 0)
+		rte_log_set_level(cxgbe_tx_logtype, RTE_LOG_NOTICE);
+	cxgbe_rx_logtype = rte_log_register("pmd.net.cxgbe.rx");
+	if (cxgbe_rx_logtype >= 0)
+		rte_log_set_level(cxgbe_rx_logtype, RTE_LOG_NOTICE);
 }