[dpdk-dev] [PATCH] log:Change magic number on RTE_LOG_LEVEL to a define

Wiles, Keith keith.wiles at intel.com
Sun Aug 2 21:10:02 CEST 2015


On 8/2/15, 12:15 PM, "Thomas Monjalon" <thomas.monjalon at 6wind.com> wrote:

>2015-06-06 19:04, Keith Wiles:
>> --- a/config/common_bsdapp
>> +++ b/config/common_bsdapp
>> @@ -93,12 +93,18 @@ 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
>>  
>>  #
>> +# Log level use: RTE_LOG_XXX
>> +#   XXX = NOOP, EMERG, ALERT, CRIT, ERR, WARNING, NOTICE, INFO or DEBUG
>> +#   Look in rte_log.h for others if any.
>> +#
>
>I think this comment is useless.

I do not think the comment is useless as some may not understand what
values the Log level can be set too in the future. Not commenting the
change would be a problem IMO. This is also why the line was moved.
>
>> +CONFIG_RTE_LOG_LEVEL=RTE_LOG_DEBUG
>
>Yes, easier to read.
>Please do not move line without good reason. It was more logic to see it
>along
>with LOG_HISTORY.

Moving the line was for the comment and now it is a enum value instead of
a magic number. Magic numbers are bad right? Adding a comment to help the
user set this value is always reasonable IMO unless the comment is not
correct, is this the case?
>
>> --- 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,
>>  };
>
>OK, more consistent.
>It was set to RTE_LOG_LEVEL later anyway.
>(this comment would be useful in the commit message)
>
>>  /* 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_NOOP = 0,   /**< Noop not used (zero entry)        */
>
>NOOP is useless: EMERG may be = 1

Does it really matter if I used RTE_LOG_NOOP, just to make sure someone
did not try to use zero here. Instead of setting the RTE_LOG_EMERG=1, I
can change it to be the way you suggest, but I think it does not hurt
anything does it?
>
>> +	RTE_LOG_EMERG,      /**< 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.             */
>> +};
>
>What is the benefit of this change?

The change is to use a enum in place of using magic numbers, plus you get
the benefit of seeing the enum name in the debugger instead of a number.
It makes the code more readable IMHO.
>
>

To me the code is fine and the only change would be the RTE_LOG_NOOP being
remove and RTE_LOG_EMERG=1.

‹ 
Regards,
++Keith
Intel Corporation





More information about the dev mailing list