[dpdk-dev] [PATCH v2] log:Change magic number on RTE_LOG_LEVEL to an enum name

Stephen Hemminger stephen at networkplumber.org
Mon Aug 3 05:13:03 CEST 2015


On Sun,  2 Aug 2015 16:40:24 -0500
Keith Wiles <keith.wiles at intel.com> wrote:

> Config files used RTE_LOG_LEVEL=8 to set log level to DEBUG. Using
> a the RTE_LOG_XXXX is easier to maintain.
> 
> Converted the RTE_LOG_XXXX define into a enum of values with
> the same names to reduce maintaining the define values.
> 
> The change is to use an enum in place of a magic number, plus
> we get the benefit of seeing the enum name in the debugger
> instead of a number.
> 
> The rte_logs was set after options parsing, defaulting to
> RTE_LOG_LEVEL, and it is now initialized at RTE_LOG_LEVEL
> without behavioral change.
> 
> Signed-off-by: Keith Wiles <keith.wiles at intel.com>
> ---
>  config/common_bsdapp                    |  6 ++++--
>  config/common_linuxapp                  |  6 ++++--
>  lib/librte_eal/common/eal_common_log.c  |  4 ++--
>  lib/librte_eal/common/include/rte_log.h | 18 ++++++++++--------
>  4 files changed, 20 insertions(+), 14 deletions(-)
> 
> diff --git a/config/common_bsdapp b/config/common_bsdapp
> index 2c6eb40..b2e9462 100644
> --- a/config/common_bsdapp
> +++ b/config/common_bsdapp
> @@ -102,12 +102,14 @@ CONFIG_RTE_MAX_NUMA_NODES=8
>  CONFIG_RTE_MAX_MEMSEG=256
>  CONFIG_RTE_MAX_MEMZONE=2560
>  CONFIG_RTE_MAX_TAILQ=32
> -CONFIG_RTE_LOG_LEVEL=8
> -CONFIG_RTE_LOG_HISTORY=256
>  CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n
>  CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
>  CONFIG_RTE_MALLOC_DEBUG=n
>  
> +# RTE_LOG_XXX = DEBUG, INFO, NOTICE, WARNING or ERR
> +CONFIG_RTE_LOG_LEVEL=RTE_LOG_DEBUG
> +CONFIG_RTE_LOG_HISTORY=256
> +
>  #
>  # FreeBSD contiguous memory driver settings
>  #
> diff --git a/config/common_linuxapp b/config/common_linuxapp
> index bda9a63..eb0f659 100644
> --- a/config/common_linuxapp
> +++ b/config/common_linuxapp
> @@ -102,8 +102,6 @@ CONFIG_RTE_MAX_NUMA_NODES=8
>  CONFIG_RTE_MAX_MEMSEG=256
>  CONFIG_RTE_MAX_MEMZONE=2560
>  CONFIG_RTE_MAX_TAILQ=32
> -CONFIG_RTE_LOG_LEVEL=8
> -CONFIG_RTE_LOG_HISTORY=256
>  CONFIG_RTE_LIBEAL_USE_HPET=n
>  CONFIG_RTE_EAL_ALLOW_INV_SOCKET_ID=n
>  CONFIG_RTE_EAL_ALWAYS_PANIC_ON_ERROR=n
> @@ -111,6 +109,10 @@ CONFIG_RTE_EAL_IGB_UIO=y
>  CONFIG_RTE_EAL_VFIO=y
>  CONFIG_RTE_MALLOC_DEBUG=n
>  
> +# RTE_LOG_XXX = DEBUG, INFO, NOTICE, WARNING or ERR
> +CONFIG_RTE_LOG_LEVEL=RTE_LOG_DEBUG
> +CONFIG_RTE_LOG_HISTORY=256
> +
>  #
>  # Special configurations in PCI Config Space for high performance
>  #
> diff --git a/lib/librte_eal/common/eal_common_log.c b/lib/librte_eal/common/eal_common_log.c
> index 1ae8de7..6ed6743 100644
> --- a/lib/librte_eal/common/eal_common_log.c
> +++ b/lib/librte_eal/common/eal_common_log.c
> @@ -82,7 +82,7 @@ static struct log_history_list log_history;
>  /* global log structure */
>  struct rte_logs rte_logs = {
>  	.type = ~0,
> -	.level = RTE_LOG_DEBUG,
> +	.level = RTE_LOG_LEVEL,
>  	.file = NULL,
>  };
>  
> @@ -93,7 +93,7 @@ static int history_enabled = 1;
>  
>  /**
>   * This global structure stores some informations about the message
> - * that is currently beeing processed by one lcore
> + * that is currently being processed by one lcore
>   */
>  struct log_cur_msg {
>  	uint32_t loglevel; /**< log level - see rte_log.h */
> diff --git a/lib/librte_eal/common/include/rte_log.h b/lib/librte_eal/common/include/rte_log.h
> index 24a55cc..be75a45 100644
> --- a/lib/librte_eal/common/include/rte_log.h
> +++ b/lib/librte_eal/common/include/rte_log.h
> @@ -89,14 +89,16 @@ extern struct rte_logs rte_logs;
>  #define RTE_LOGTYPE_USER8   0x80000000 /**< User-defined log type 8. */
>  
>  /* Can't use 0, as it gives compiler warnings */
> -#define RTE_LOG_EMERG    1U  /**< System is unusable.               */
> -#define RTE_LOG_ALERT    2U  /**< Action must be taken immediately. */
> -#define RTE_LOG_CRIT     3U  /**< Critical conditions.              */
> -#define RTE_LOG_ERR      4U  /**< Error conditions.                 */
> -#define RTE_LOG_WARNING  5U  /**< Warning conditions.               */
> -#define RTE_LOG_NOTICE   6U  /**< Normal but significant condition. */
> -#define RTE_LOG_INFO     7U  /**< Informational.                    */
> -#define RTE_LOG_DEBUG    8U  /**< Debug-level messages.             */
> +enum {
> +	RTE_LOG_EMERG=1,    /**< System is unusable.               */
> +	RTE_LOG_ALERT,      /**< Action must be taken immediately. */
> +	RTE_LOG_CRIT,       /**< Critical conditions.              */
> +	RTE_LOG_ERR,        /**< Error conditions.                 */
> +	RTE_LOG_WARNING,    /**< Warning conditions.               */
> +	RTE_LOG_NOTICE,     /**< Normal but significant condition. */
> +	RTE_LOG_INFO,       /**< Informational.                    */
> +	RTE_LOG_DEBUG       /**< Debug-level messages.             */
> +};
>  

This is technically a source API change. There are cases where
you could break build of existing code that was expecting #define's
(but I doubt anyone would notice0.


More information about the dev mailing list