[dpdk-dev] [PATCH] eal: check coremask against detected lcores

Neil Horman nhorman at tuxdriver.com
Tue Apr 15 15:57:54 CEST 2014


On Tue, Apr 15, 2014 at 03:50:42PM +0200, David Marchand wrote:
> lcores that are set in coremask should be checked against lcores detected on
> system. This way, we won't need to check them later.
> 
> Besides, if specifying an unavailable lcore, we currently panic in
> eal_thread_loop() because pthread_setaffinity_np fails.
> So this check will return an error with a more explicit message in
> eal_parse_coremask().
> 
> "EAL: pthread_setaffinity_np failed
>  PANIC in eal_thread_loop():
>  cannot set affinity"
> 
> becomes :
> 
> "EAL: lcore 4 unavailable
>  EAL: invalid coremask"
> 
> Signed-off-by: David Marchand <david.marchand at 6wind.com>
> ---
>  lib/librte_eal/linuxapp/eal/eal.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
> index d2753ec..04b2b32 100644
> --- a/lib/librte_eal/linuxapp/eal/eal.c
> +++ b/lib/librte_eal/linuxapp/eal/eal.c
> @@ -441,6 +441,11 @@ eal_parse_coremask(const char *coremask)
>  		val = xdigit2val(c);
>  		for(j = 0; j < BITS_PER_HEX && idx < RTE_MAX_LCORE; j++, idx++) {
>  			if((1 << j) & val) {
> +				if (!lcore_config[idx].detected) {
> +					RTE_LOG(ERR, EAL, "lcore %u "
> +					        "unavailable\n", idx);
> +					return -1;
> +				}
>  				cfg->lcore_role[idx] = ROLE_RTE;
>  				if(count == 0)
>  					cfg->master_lcore = idx;
> -- 
> 1.7.10.4
> 
> 

Acked-by: Neil Horman <nhorman at tuxdriver.com>


More information about the dev mailing list