[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