net/sfc: support datapath logs which may be compiled out
authorAndrew Rybchenko <arybchenko@solarflare.com>
Tue, 13 Oct 2020 13:45:32 +0000 (14:45 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 16 Oct 2020 17:48:18 +0000 (19:48 +0200)
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 <arybchenko@solarflare.com>
drivers/net/sfc/sfc_dp.h

index 47487d1..df76f3f 100644 (file)
@@ -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 ": "           \