| rte_lcore.h(3) | Library Functions Manual | rte_lcore.h(3) |
rte_lcore.h
#include <stdio.h>
#include <rte_compat.h>
#include <rte_config.h>
#include <rte_per_lcore.h>
#include <rte_eal.h>
#include <rte_launch.h>
#include <rte_thread.h>
struct rte_lcore_usage
#define LCORE_ID_ANY UINT32_MAX
#define RTE_LCORE_FOREACH(i)
#define RTE_LCORE_FOREACH_WORKER(i)
typedef int(* rte_lcore_init_cb) (unsigned int
lcore_id, void *arg)
typedef void(* rte_lcore_uninit_cb) (unsigned int lcore_id, void
*arg)
typedef int(* rte_lcore_iterate_cb) (unsigned int lcore_id, void
*arg)
typedef int(* rte_lcore_usage_cb) (unsigned int lcore_id, struct
rte_lcore_usage *usage)
enum rte_lcore_role_t
RTE_DECLARE_PER_LCORE (unsigned, _lcore_id)
enum rte_lcore_role_t rte_eal_lcore_role (unsigned int lcore_id)
int rte_lcore_has_role (unsigned int lcore_id, enum
rte_lcore_role_t role)
static unsigned rte_lcore_id (void)
unsigned int rte_get_main_lcore (void)
unsigned int rte_lcore_count (void)
int rte_lcore_index (int lcore_id)
unsigned int rte_socket_id (void)
unsigned int rte_socket_count (void)
int rte_socket_id_by_idx (unsigned int idx)
unsigned int rte_lcore_to_socket_id (unsigned int lcore_id)
int rte_lcore_to_cpu_id (int lcore_id)
rte_cpuset_t rte_lcore_cpuset (unsigned int lcore_id)
int rte_lcore_is_enabled (unsigned int lcore_id)
unsigned int rte_get_next_lcore (unsigned int i, int skip_main, int
wrap)
void * rte_lcore_callback_register (const char *name,
rte_lcore_init_cb init, rte_lcore_uninit_cb uninit, void *arg)
void rte_lcore_callback_unregister (void *handle)
int rte_lcore_iterate (rte_lcore_iterate_cb cb, void *arg)
void rte_lcore_register_usage_cb (rte_lcore_usage_cb cb)
void rte_lcore_dump (FILE *f)
int rte_thread_register (void)
void rte_thread_unregister (void)
API for lcore and socket manipulation
Definition in file rte_lcore.h.
Any lcore.
Definition at line 26 of file rte_lcore.h.
Value:.PP
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.
Definition at line 217 of file rte_lcore.h.
Value:.PP
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 main lcore.
Definition at line 225 of file rte_lcore.h.
Callback prototype for initializing lcores.
Parameters
Returns
Definition at line 241 of file rte_lcore.h.
Callback prototype for uninitializing lcores.
Parameters
Definition at line 251 of file rte_lcore.h.
Callback prototype for iterating over lcores.
Parameters
Returns
Definition at line 309 of file rte_lcore.h.
Callback to allow applications to report lcore usage.
Parameters
Returns
Definition at line 359 of file rte_lcore.h.
The lcore role (used in RTE or not).
Definition at line 33 of file rte_lcore.h.
Per thread 'lcore id'.
Get a lcore's role.
Parameters
Returns
Test if the core supplied has a specific role
Parameters
Returns
Return the Application thread ID of the execution unit.
Note: in most cases the lcore id returned here will also correspond to the processor id of the CPU on which the thread is pinned, this will not be the case if the user has explicitly changed the thread to core affinities using --lcores EAL argument e.g. --lcores '(0-3)@10' to run threads with lcore IDs 0, 1, 2 and 3 on physical core 10..
Returns
Definition at line 78 of file rte_lcore.h.
Get the id of the main lcore
Returns
Return the number of execution units (lcores) on the system.
Returns
Return the index of the lcore starting from zero.
When option -c or -l is given, the index corresponds to the order in the list. For example: -c 0x30, lcore 4 has index 0, and 5 has index 1. -l 22,18 lcore 22 has index 0, and 18 has index 1.
Parameters
Returns
Return the ID of the physical socket of the logical core we are running on.
Returns
Return number of physical sockets detected on the system.
Note that number of nodes may not be correspondent to their physical id's: for example, a system may report two socket id's, but the actual socket id's may be 0 and 8.
Returns
Return socket id with a particular index.
This will return socket id at a particular position in list of all detected physical socket id's. For example, on a machine with sockets [0, 8], passing 1 as a parameter will return 8.
Parameters
Returns
Get the ID of the physical socket of the specified lcore
Parameters
Returns
Return the id of the lcore on a socket starting from zero.
Parameters
Returns
Return the cpuset for a given lcore.
Parameters
Returns
Test if an lcore is enabled.
Parameters
Returns
Get the next enabled lcore ID.
Parameters
Returns
Register callbacks invoked when initializing and uninitializing a lcore.
This function calls the init callback with all initialized lcores. Any error reported by the init callback triggers a rollback calling the uninit callback for each lcore. If this step succeeds, the callbacks are put in the lcore callbacks list that will get called for each lcore allocation/release.
Note: callbacks execution is serialised under a write lock protecting the lcores and callbacks list.
Parameters
Returns
Unregister callbacks previously registered with rte_lcore_callback_register.
This function calls the uninit callback with all initialized lcores. The callbacks are then removed from the lcore callbacks list.
Parameters
Iterate on all active lcores (ROLE_RTE, ROLE_SERVICE and ROLE_NON_EAL). No modification on the lcore states is allowed in the callback.
Note: as opposed to init/uninit callbacks, iteration callbacks can be invoked in parallel as they are run under a read lock protecting the lcores and callbacks list.
Parameters
Returns
Register a callback from an application to be called in rte_lcore_dump() and the /eal/lcore/info telemetry endpoint handler. Applications are expected to report lcore usage statistics via this callback.
If a callback was already registered, it can be replaced with another callback or unregistered with NULL. The previously registered callback may remain in use for an undetermined period of time.
Parameters
List all lcores.
Parameters
Register current non-EAL thread as a lcore.
Note
Returns
Unregister current thread and release lcore if one was associated.
Generated automatically by Doxygen for DPDK from the source code.
| Version 24.11.3 | DPDK |