Add datapath log level which limits logs included in build since
on datapath it is too expensive to dive into rte_log() function
even if it does nothing.

Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com>
---
 drivers/net/sfc/sfc_dp.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/sfc/sfc_dp.h b/drivers/net/sfc/sfc_dp.h
index 47487d1f1f..df76f3f2bb 100644
--- a/drivers/net/sfc/sfc_dp.h
+++ b/drivers/net/sfc/sfc_dp.h
@@ -51,6 +51,11 @@ void sfc_dp_queue_init(struct sfc_dp_queue *dpq,
                       uint16_t port_id, uint16_t queue_id,
                       const struct rte_pci_addr *pci_addr);
 
+/* Maximum datapath log level to be included in build. */
+#ifndef SFC_DP_LOG_LEVEL
+#define SFC_DP_LOG_LEVEL       RTE_LOG_NOTICE
+#endif
+
 /*
  * Helper macro to define datapath logging macros and have uniform
  * logging.
@@ -60,6 +65,8 @@ void sfc_dp_queue_init(struct sfc_dp_queue *dpq,
                const struct sfc_dp_queue *_dpq = (dpq);                \
                const struct rte_pci_addr *_addr = &(_dpq)->pci_addr;   \
                                                                        \
+               if (RTE_LOG_ ## level > SFC_DP_LOG_LEVEL)               \
+                       break;                                          \
                SFC_GENERIC_LOG(level,                                  \
                        RTE_FMT("%s " PCI_PRI_FMT                       \
                                " #%" PRIu16 ".%" PRIu16 ": "           \
-- 
2.17.1

Reply via email to