eal: add lcore accessors
The fields of the internal EAL core configuration are currently laid bare as part of the API. This is not good practice and limits fixing issues with layout and sizes. Make new accessor functions for the fields used by current drivers and examples. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Marchand <david.marchand@redhat.com>
This commit is contained in:
parent
3a1bb50734
commit
26cc3bbe4d
@ -16,6 +16,39 @@
|
||||
#include "eal_private.h"
|
||||
#include "eal_thread.h"
|
||||
|
||||
int rte_lcore_index(int lcore_id)
|
||||
{
|
||||
if (unlikely(lcore_id >= RTE_MAX_LCORE))
|
||||
return -1;
|
||||
|
||||
if (lcore_id < 0)
|
||||
lcore_id = (int)rte_lcore_id();
|
||||
|
||||
return lcore_config[lcore_id].core_index;
|
||||
}
|
||||
|
||||
int rte_lcore_to_cpu_id(int lcore_id)
|
||||
{
|
||||
if (unlikely(lcore_id >= RTE_MAX_LCORE))
|
||||
return -1;
|
||||
|
||||
if (lcore_id < 0)
|
||||
lcore_id = (int)rte_lcore_id();
|
||||
|
||||
return lcore_config[lcore_id].core_id;
|
||||
}
|
||||
|
||||
rte_cpuset_t rte_lcore_cpuset(unsigned int lcore_id)
|
||||
{
|
||||
return lcore_config[lcore_id].cpuset;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
rte_lcore_to_socket_id(unsigned int lcore_id)
|
||||
{
|
||||
return lcore_config[lcore_id].socket_id;
|
||||
}
|
||||
|
||||
static int
|
||||
socket_id_cmp(const void *a, const void *b)
|
||||
{
|
||||
|
@ -121,15 +121,7 @@ rte_lcore_count(void)
|
||||
* @return
|
||||
* The relative index, or -1 if not enabled.
|
||||
*/
|
||||
static inline int
|
||||
rte_lcore_index(int lcore_id)
|
||||
{
|
||||
if (lcore_id >= RTE_MAX_LCORE)
|
||||
return -1;
|
||||
if (lcore_id < 0)
|
||||
lcore_id = (int)rte_lcore_id();
|
||||
return lcore_config[lcore_id].core_index;
|
||||
}
|
||||
int rte_lcore_index(int lcore_id);
|
||||
|
||||
/**
|
||||
* Return the ID of the physical socket of the logical core we are
|
||||
@ -177,11 +169,35 @@ rte_socket_id_by_idx(unsigned int idx);
|
||||
* @return
|
||||
* the ID of lcoreid's physical socket
|
||||
*/
|
||||
static inline unsigned int
|
||||
rte_lcore_to_socket_id(unsigned int lcore_id)
|
||||
{
|
||||
return lcore_config[lcore_id].socket_id;
|
||||
}
|
||||
unsigned int
|
||||
rte_lcore_to_socket_id(unsigned int lcore_id);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice.
|
||||
*
|
||||
* Return the id of the lcore on a socket starting from zero.
|
||||
*
|
||||
* @param lcore_id
|
||||
* The targeted lcore, or -1 for the current one.
|
||||
* @return
|
||||
* The relative index, or -1 if not enabled.
|
||||
*/
|
||||
__rte_experimental int
|
||||
rte_lcore_to_cpu_id(int lcore_id);
|
||||
|
||||
/**
|
||||
* @warning
|
||||
* @b EXPERIMENTAL: this API may change without prior notice.
|
||||
*
|
||||
* Return the cpuset for a given lcore.
|
||||
* @param lcore_id
|
||||
* the targeted lcore, which MUST be between 0 and RTE_MAX_LCORE-1.
|
||||
* @return
|
||||
* The cpuset of that lcore
|
||||
*/
|
||||
__rte_experimental rte_cpuset_t
|
||||
rte_lcore_cpuset(unsigned int lcore_id);
|
||||
|
||||
/**
|
||||
* Test if an lcore is enabled.
|
||||
|
@ -287,6 +287,14 @@ DPDK_19.05 {
|
||||
|
||||
} DPDK_18.11;
|
||||
|
||||
DPDK_19.08 {
|
||||
global:
|
||||
|
||||
rte_lcore_index;
|
||||
rte_lcore_to_socket_id;
|
||||
|
||||
} DPDK_19.05;
|
||||
|
||||
EXPERIMENTAL {
|
||||
global:
|
||||
|
||||
@ -378,4 +386,8 @@ EXPERIMENTAL {
|
||||
rte_service_lcore_attr_get;
|
||||
rte_service_lcore_attr_reset_all;
|
||||
rte_service_may_be_active;
|
||||
|
||||
# added in 19.08
|
||||
rte_lcore_cpuset;
|
||||
rte_lcore_to_cpu_id;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user