net/mlx4: use dynamic log type
Checks
Commit Message
This driver should use dynamic log level not RTE_LOGTYPE_PMD.
Other drivers were converted back in 18.02.
This is really a bug, all other drivers use dynamic log levels
by now.
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
drivers/net/mlx4/mlx4.c | 8 ++++++++
drivers/net/mlx4/mlx4_utils.h | 6 ++++--
2 files changed, 12 insertions(+), 2 deletions(-)
Comments
On 5/21/2019 10:27 PM, Stephen Hemminger wrote:
> This driver should use dynamic log level not RTE_LOGTYPE_PMD.
> Other drivers were converted back in 18.02.
>
> This is really a bug, all other drivers use dynamic log levels
> by now.
+1, we should switch it to dynamic log much earlier
Matan, Shahaf,
This patch will have problem with "RTE_LOG" usage, need to use rte_log() I
guess, can you (or Stephen, whoever can work on it) please send a new version?
Thanks,
ferruh
>
> Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
> ---
> drivers/net/mlx4/mlx4.c | 8 ++++++++
> drivers/net/mlx4/mlx4_utils.h | 6 ++++--
> 2 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
> index fe559c040706..e532dc53738f 100644
> --- a/drivers/net/mlx4/mlx4.c
> +++ b/drivers/net/mlx4/mlx4.c
> @@ -60,6 +60,9 @@ static rte_spinlock_t mlx4_shared_data_lock = RTE_SPINLOCK_INITIALIZER;
> /* Process local data for secondary processes. */
> static struct mlx4_local_data mlx4_local_data;
>
> +/** Driver-specific log messages type. */
> +int mlx4_logtype;
> +
> /** Configuration structure for device arguments. */
> struct mlx4_conf {
> struct {
> @@ -1272,6 +1275,11 @@ mlx4_glue_init(void)
> */
> RTE_INIT(rte_mlx4_pmd_init)
> {
> + /* Initialize driver log type. */
> + mlx4_logtype = rte_log_register("pmd.net.mlx4");
> + if (mlx4_logtype >= 0)
> + rte_log_set_level(mlx4_logtype, RTE_LOG_NOTICE);
> +
> /*
> * MLX4_DEVICE_FATAL_CLEANUP tells ibv_destroy functions we
> * want to get success errno value in case of calling them
> diff --git a/drivers/net/mlx4/mlx4_utils.h b/drivers/net/mlx4/mlx4_utils.h
> index 86abb3b7e376..9d3d2a4e32a1 100644
> --- a/drivers/net/mlx4/mlx4_utils.h
> +++ b/drivers/net/mlx4/mlx4_utils.h
> @@ -15,6 +15,8 @@
>
> #include "mlx4.h"
>
> +extern int mlx4_logtype;
> +
> #ifndef NDEBUG
>
> /*
> @@ -35,7 +37,7 @@ pmd_drv_log_basename(const char *s)
> }
>
> #define PMD_DRV_LOG(level, ...) \
> - RTE_LOG(level, PMD, \
> + RTE_LOG(level, mlx4_logtype, \
> RTE_FMT("%s:%u: %s(): " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
> pmd_drv_log_basename(__FILE__), \
> __LINE__, \
> @@ -52,7 +54,7 @@ pmd_drv_log_basename(const char *s)
> */
>
> #define PMD_DRV_LOG(level, ...) \
> - RTE_LOG(level, PMD, \
> + RTE_LOG(level, mlx4_logtype, \
> RTE_FMT(MLX4_DRIVER_NAME ": " \
> RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
> RTE_FMT_TAIL(__VA_ARGS__,)))
>
@@ -60,6 +60,9 @@ static rte_spinlock_t mlx4_shared_data_lock = RTE_SPINLOCK_INITIALIZER;
/* Process local data for secondary processes. */
static struct mlx4_local_data mlx4_local_data;
+/** Driver-specific log messages type. */
+int mlx4_logtype;
+
/** Configuration structure for device arguments. */
struct mlx4_conf {
struct {
@@ -1272,6 +1275,11 @@ mlx4_glue_init(void)
*/
RTE_INIT(rte_mlx4_pmd_init)
{
+ /* Initialize driver log type. */
+ mlx4_logtype = rte_log_register("pmd.net.mlx4");
+ if (mlx4_logtype >= 0)
+ rte_log_set_level(mlx4_logtype, RTE_LOG_NOTICE);
+
/*
* MLX4_DEVICE_FATAL_CLEANUP tells ibv_destroy functions we
* want to get success errno value in case of calling them
@@ -15,6 +15,8 @@
#include "mlx4.h"
+extern int mlx4_logtype;
+
#ifndef NDEBUG
/*
@@ -35,7 +37,7 @@ pmd_drv_log_basename(const char *s)
}
#define PMD_DRV_LOG(level, ...) \
- RTE_LOG(level, PMD, \
+ RTE_LOG(level, mlx4_logtype, \
RTE_FMT("%s:%u: %s(): " RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
pmd_drv_log_basename(__FILE__), \
__LINE__, \
@@ -52,7 +54,7 @@ pmd_drv_log_basename(const char *s)
*/
#define PMD_DRV_LOG(level, ...) \
- RTE_LOG(level, PMD, \
+ RTE_LOG(level, mlx4_logtype, \
RTE_FMT(MLX4_DRIVER_NAME ": " \
RTE_FMT_HEAD(__VA_ARGS__,) "\n", \
RTE_FMT_TAIL(__VA_ARGS__,)))