Skip to content

Commit

Permalink
drivers: fix log level after loading
Browse files Browse the repository at this point in the history
[ upstream commit 3be4208 ]

When compiled as a shared object, and loaded at runtime as a plugin,
the drivers should get the log level set earlier at EAL init
by the user through --log-level option.

The function for applying the log level setting is
rte_log_register_type_and_pick_level().
It is called by most drivers via RTE_LOG_REGISTER().

The drivers common/mlx5, bcmfs and e1000 were missing,
so the user-specified log level was not applied when
those drivers were loaded as plugins.
The macro RTE_LOG_REGISTER() is used for those drivers.

The unnecessary protection for double registration
is removed from e1000.

Fixes: 9c99878 ("log: introduce logtype register macro")
Fixes: c8e79da ("crypto/bcmfs: introduce BCMFS driver")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
  • Loading branch information
tmonjalo authored and steevenlee committed May 8, 2021
1 parent 6baf95a commit 92805a5
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 79 deletions.
9 changes: 1 addition & 8 deletions drivers/common/mlx5/mlx5_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
#include "mlx5_malloc.h"
#include "mlx5_common_pci.h"

int mlx5_common_logtype;

uint8_t haswell_broadwell_cpu;

/* In case this is an x86_64 intel processor to check if
Expand All @@ -43,12 +41,7 @@ static inline void mlx5_cpu_id(unsigned int level,
}
#endif

RTE_INIT_PRIO(mlx5_log_init, LOG)
{
mlx5_common_logtype = rte_log_register("pmd.common.mlx5");
if (mlx5_common_logtype >= 0)
rte_log_set_level(mlx5_common_logtype, RTE_LOG_NOTICE);
}
RTE_LOG_REGISTER(mlx5_common_logtype, pmd.common.mlx5, NOTICE)

static bool mlx5_common_initialized;

Expand Down
17 changes: 2 additions & 15 deletions drivers/crypto/bcmfs/bcmfs_logs.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@

#include "bcmfs_logs.h"

int bcmfs_conf_logtype;
int bcmfs_dp_logtype;

int
bcmfs_hexdump_log(uint32_t level, uint32_t logtype, const char *title,
const void *buf, unsigned int len)
Expand All @@ -24,15 +21,5 @@ bcmfs_hexdump_log(uint32_t level, uint32_t logtype, const char *title,
return 0;
}

RTE_INIT(bcmfs_device_init_log)
{
/* Configuration and general logs */
bcmfs_conf_logtype = rte_log_register("pmd.bcmfs_config");
if (bcmfs_conf_logtype >= 0)
rte_log_set_level(bcmfs_conf_logtype, RTE_LOG_NOTICE);

/* data-path logs */
bcmfs_dp_logtype = rte_log_register("pmd.bcmfs_fp");
if (bcmfs_dp_logtype >= 0)
rte_log_set_level(bcmfs_dp_logtype, RTE_LOG_NOTICE);
}
RTE_LOG_REGISTER(bcmfs_conf_logtype, pmd.bcmfs_config, NOTICE)
RTE_LOG_REGISTER(bcmfs_dp_logtype, pmd.bcmfs_fp, NOTICE)
49 changes: 5 additions & 44 deletions drivers/net/e1000/e1000_logs.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,53 +4,14 @@

#include "e1000_logs.h"

/* declared as extern in e1000_logs.h */
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)
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);

RTE_LOG_REGISTER(e1000_logtype_init, pmd.net.e1000.init, NOTICE)
RTE_LOG_REGISTER(e1000_logtype_driver, pmd.net.e1000.driver, 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);
RTE_LOG_REGISTER(e1000_logtype_rx, pmd.net.e1000.rx, 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);
RTE_LOG_REGISTER(e1000_logtype_tx, pmd.net.e1000.tx, 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);
RTE_LOG_REGISTER(e1000_logtype_tx_free, pmd.net.e1000.tx_free, DEBUG)
#endif

e1000_log_initialized = 1;
}
6 changes: 0 additions & 6 deletions drivers/net/e1000/em_ethdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1850,9 +1850,3 @@ eth_em_set_mc_addr_list(struct rte_eth_dev *dev,
RTE_PMD_REGISTER_PCI(net_e1000_em, rte_em_pmd);
RTE_PMD_REGISTER_PCI_TABLE(net_e1000_em, pci_id_em_map);
RTE_PMD_REGISTER_KMOD_DEP(net_e1000_em, "* igb_uio | uio_pci_generic | vfio-pci");

/* see e1000_logs.c */
RTE_INIT(igb_init_log)
{
e1000_igb_init_log();
}
6 changes: 0 additions & 6 deletions drivers/net/e1000/igb_ethdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -5438,9 +5438,3 @@ RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb, "* igb_uio | uio_pci_generic | vfio-pci
RTE_PMD_REGISTER_PCI(net_e1000_igb_vf, rte_igbvf_pmd);
RTE_PMD_REGISTER_PCI_TABLE(net_e1000_igb_vf, pci_id_igbvf_map);
RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb_vf, "* igb_uio | vfio-pci");

/* see e1000_logs.c */
RTE_INIT(e1000_init_log)
{
e1000_igb_init_log();
}

0 comments on commit 92805a5

Please sign in to comment.