DPDK  2.0.0
Data Structures | Macros | Functions | Variables
rte_lcore.h File Reference
#include <rte_per_lcore.h>
#include <rte_eal.h>
#include <rte_launch.h>

Data Structures

struct  lcore_config

Macros

#define LCORE_ID_ANY   UINT32_MAX
#define RTE_LCORE_FOREACH(i)
#define RTE_LCORE_FOREACH_SLAVE(i)

Functions

 RTE_DECLARE_PER_LCORE (unsigned, _lcore_id)
 RTE_DECLARE_PER_LCORE (rte_cpuset_t, _cpuset)
static unsigned rte_lcore_id (void)
static unsigned rte_get_master_lcore (void)
static unsigned rte_lcore_count (void)
static int rte_lcore_index (int lcore_id)
unsigned rte_socket_id (void)
static unsigned rte_lcore_to_socket_id (unsigned lcore_id)
static int rte_lcore_is_enabled (unsigned lcore_id)
static unsigned rte_get_next_lcore (unsigned i, int skip_master, int wrap)
int rte_thread_set_affinity (rte_cpuset_t *cpusetp)
void rte_thread_get_affinity (rte_cpuset_t *cpusetp)

Variables

struct lcore_config lcore_config [RTE_MAX_LCORE]

Detailed Description

API for lcore and socket manipulation

Macro Definition Documentation

#define LCORE_ID_ANY   UINT32_MAX

Any lcore.

#define RTE_LCORE_FOREACH (   i)
Value:
for (i = rte_get_next_lcore(-1, 0, 0); \
i<RTE_MAX_LCORE; \
i = rte_get_next_lcore(i, 0, 0))

Macro to browse all running lcores.

#define RTE_LCORE_FOREACH_SLAVE (   i)
Value:
for (i = rte_get_next_lcore(-1, 1, 0); \
i<RTE_MAX_LCORE; \
i = rte_get_next_lcore(i, 1, 0))

Macro to browse all running lcores except the master lcore.

Function Documentation

RTE_DECLARE_PER_LCORE ( unsigned  ,
_lcore_id   
)

Per thread "lcore id".

RTE_DECLARE_PER_LCORE ( rte_cpuset_t  ,
_cpuset   
)

Per thread "cpuset".

static unsigned rte_get_master_lcore ( void  )
inlinestatic

Get the id of the master lcore

Returns
the id of the master lcore
static unsigned rte_get_next_lcore ( unsigned  i,
int  skip_master,
int  wrap 
)
inlinestatic

Get the next enabled lcore ID.

Parameters
iThe current lcore (reference).
skip_masterIf true, do not return the ID of the master lcore.
wrapIf true, go back to 0 when RTE_MAX_LCORE is reached; otherwise, return RTE_MAX_LCORE.
Returns
The next lcore_id or RTE_MAX_LCORE if not found.
static unsigned rte_lcore_count ( void  )
inlinestatic

Return the number of execution units (lcores) on the system.

Returns
the number of execution units (lcores) on the system.
static unsigned rte_lcore_id ( void  )
inlinestatic

Return the ID of the execution unit we are running on.

Returns
Logical core ID (in EAL thread) or LCORE_ID_ANY (in non-EAL thread)
static int rte_lcore_index ( int  lcore_id)
inlinestatic

Return the index of the lcore starting from zero. The order is physical or given by command line (-l option).

Parameters
lcore_idThe targeted lcore, or -1 for the current one.
Returns
The relative index, or -1 if not enabled.
static int rte_lcore_is_enabled ( unsigned  lcore_id)
inlinestatic

Test if an lcore is enabled.

Parameters
lcore_idThe identifier of the lcore, which MUST be between 0 and RTE_MAX_LCORE-1.
Returns
True if the given lcore is enabled; false otherwise.
static unsigned rte_lcore_to_socket_id ( unsigned  lcore_id)
inlinestatic

Get the ID of the physical socket of the specified lcore

Parameters
lcore_idthe targeted lcore, which MUST be between 0 and RTE_MAX_LCORE-1.
Returns
the ID of lcoreid's physical socket
unsigned rte_socket_id ( void  )

Return the ID of the physical socket of the logical core we are running on.

Returns
the ID of current lcoreid's physical socket
void rte_thread_get_affinity ( rte_cpuset_t *  cpusetp)

Get core affinity of the current thread.

Parameters
cpusetpPoint to cpu_set_t for getting current thread cpu affinity. It presumes input is not NULL, otherwise it causes panic.
int rte_thread_set_affinity ( rte_cpuset_t *  cpusetp)

Set core affinity of the current thread. Support both EAL and non-EAL thread and update TLS.

Parameters
cpusetpPoint to cpu_set_t for setting current thread affinity.
Returns
On success, return 0; otherwise return -1;

Variable Documentation

struct lcore_config lcore_config[RTE_MAX_LCORE]

Internal configuration (per-lcore)