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>

Reply via email to