[dpdk-dev] [PATCH] eal: fix log level/type retrieving on a standard pthread

Ferruh Yigit ferruh.yigit at intel.com
Wed May 11 18:39:13 CEST 2016


On 5/9/2016 5:13 PM, Olivier Matz wrote:
> From: Maxime Leroy <maxime.leroy at 6wind.com>
> 
> The functions rte_log_cur_msg_loglevel() and rte_log_cur_msg_logtype()
> return the current log level/type for the message being processed. They
> are used when implementing a user-defined logging stream.
> 
> The current log levels and types were stored in a table indexed by the
> lcore_id, only returning a valid value for dataplane threads. Setting
> and getting these values in a non dataplane thread was ignored, using
> the global value instead.
> 
> To fix this issue, a per-thread variable could be used (with
> RTE_DEFINE_PER_LCORE), allowing any pthread to set and retrieve its
> current log level or type.
> 
> Signed-off-by: Maxime Leroy <maxime.leroy at 6wind.com>
> Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
> ---
>  lib/librte_eal/common/eal_common_log.c | 25 +++++++------------------
>  1 file changed, 7 insertions(+), 18 deletions(-)
> 
> diff --git a/lib/librte_eal/common/eal_common_log.c b/lib/librte_eal/common/eal_common_log.c
> index 64aa79f..9526095 100644
> --- a/lib/librte_eal/common/eal_common_log.c
> +++ b/lib/librte_eal/common/eal_common_log.c
> @@ -98,9 +98,10 @@ static int history_enabled = 1;
>  struct log_cur_msg {
>  	uint32_t loglevel; /**< log level - see rte_log.h */
>  	uint32_t logtype;  /**< log type  - see rte_log.h */
> -} __rte_cache_aligned;

Removing alignment seems not related the main purpose of the patch. Is
this intentional?

<...>

I have tested with custom code, non-EAL thread have lcore_id value
UINT32_MAX, which is > RTE_MAX_LCORE and rte_log_cur_msg_loglevel gives
default log level as described in commit log. With this patch each
thread gets its own log level.

Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>



More information about the dev mailing list