Pavan,

The rte_lcore_has_role() documentation says it returns bool.

Its implementation returns a true value (-1) if given a non-compliant lcore_id, 
e.g. LCORE_ID_ANY.

I think it should behave like rte_lcore_is_enabled(), i.e. return false if 
given a non-compliant lcore_id, e.g. LCORE_ID_ANY.

Use case:
A control thread in an application might or might not register itself, and the 
registration might not succeed.

At exit of this control thread, it should unregister itself if registered.

Fixing rte_lcore_has_role() as suggested would simplify the application from 
this:

        if (rte_lcore_id() != LCORE_ID_ANY &&
                        rte_eal_lcore_role(rte_lcore_id()) == ROLE_NON_EAL)
                rte_thread_unregister();

To this:

        if (rte_lcore_has_role(rte_lcore_id(), ROLE_NON_EAL))
                rte_thread_unregister();

-Morten

Reply via email to