![]() |
EM-ODP 4.4.0
Event Machine on ODP
|
#include <em_core_types.h>

Data Fields | ||
| odp_atomic_u32_t | current_core_count | |
| odp_atomic_u32_t | worker_core_count | |
| odp_atomic_u32_t | control_core_count | |
| odp_atomic_u32_t | external_thread_count | |
| odp_atomic_u32_t | ongoing_term_reqs [ODP_THREAD_COUNT_MAX] | |
| odp_rwlock_t | rwlock | |
| struct { | ||
| struct { | ||
| uint8_t logic [ODP_THREAD_COUNT_MAX] | ||
| uint16_t odp_thr [EM_MAX_CORES] | ||
| } thr_vs_logic | ||
| em_core_mask_t logic_mask | ||
| em_core_mask_t worker_mask | ||
| em_core_mask_t control_mask | ||
| odp_thrmask_t thrmask_emcores | ||
| odp_thrmask_t thrmask_extthrs | ||
| odp_thrmask_t thrmask_all | ||
| pid_t tids [EM_MAX_CORES] | ||
| pid_t ext_tids [ODP_THREAD_COUNT_MAX] | ||
| em_core_type_t core_types [EM_MAX_CORES] | ||
| char proc_tid_stat_paths [EM_MAX_CORES][32] | ||
| } | rwlocked | |
| void *end[0] | ENV_CACHE_LINE_ALIGNED | |
EM mapping from physical core ids <-> logical core ids
Definition at line 55 of file em_core_types.h.
| odp_atomic_u32_t core_map_t::control_core_count |
Number of EM control cores currently running
Definition at line 64 of file em_core_types.h.
| em_core_mask_t core_map_t::control_mask |
Mask of logic control EM-core ids
Definition at line 104 of file em_core_types.h.
| em_core_type_t core_map_t::core_types[EM_MAX_CORES] |
Type of each EM-core: worker or ctrl (not external)
Definition at line 119 of file em_core_types.h.
| odp_atomic_u32_t core_map_t::current_core_count |
Number of EM-cores currently running (em_init_local/core() called). Includes EM worker and control cores, but not external threads.
Definition at line 60 of file em_core_types.h.
| void* end [0] core_map_t::ENV_CACHE_LINE_ALIGNED |
Definition at line 129 of file em_core_types.h.
| pid_t core_map_t::ext_tids[ODP_THREAD_COUNT_MAX] |
Thread ids of external EM threads/processes
Definition at line 116 of file em_core_types.h.
| odp_atomic_u32_t core_map_t::external_thread_count |
Number of EM external threads currently running
Definition at line 66 of file em_core_types.h.
| uint8_t core_map_t::logic[ODP_THREAD_COUNT_MAX] |
From ODP thread ids to logical EM core ids
Definition at line 94 of file em_core_types.h.
| em_core_mask_t core_map_t::logic_mask |
Mask of logic EM-core ids (worker and control EM-cores)
Definition at line 100 of file em_core_types.h.
| uint16_t core_map_t::odp_thr[EM_MAX_CORES] |
From logical EM core ids to ODP thread ids
Definition at line 96 of file em_core_types.h.
| odp_atomic_u32_t core_map_t::ongoing_term_reqs[ODP_THREAD_COUNT_MAX] |
Number of ongoing TERM_THREAD_REQ operations per thread
Definition at line 69 of file em_core_types.h.
| char core_map_t::proc_tid_stat_paths[EM_MAX_CORES][32] |
Store file paths to each EM-core's /proc/[tid]/stat file so that the paths don't have to be generated each time.
Definition at line 125 of file em_core_types.h.
| odp_rwlock_t core_map_t::rwlock |
Read-write lock for the 'rwlocked'-struct below.
Multiple readers of core-map data are allowed at the same time, but only one writer. The only two scenarios where the lock is taken for writes are adding an EM-core via em_init_local/core() and removing an EM-core via em_term_local/core() - thus taking the lock for reads in control operations is not time crtitical since add/rem core operations can afford to wait.
This lock is also used to block EM-core adds or rems when an internal control operation is under way that needs info about the cores available and sends control events to them - cores can not be allowed to be removed in the middle of this.
Definition at line 86 of file em_core_types.h.
| odp_thrmask_t core_map_t::thrmask_all |
Mask of ODP-thread ids of all threads
Definition at line 111 of file em_core_types.h.
| odp_thrmask_t core_map_t::thrmask_emcores |
Mask of ODP-thread ids of worker and control EM-cores
Definition at line 107 of file em_core_types.h.
| odp_thrmask_t core_map_t::thrmask_extthrs |
Mask of ODP-thread ids of EM external threads
Definition at line 109 of file em_core_types.h.
| pid_t core_map_t::tids[EM_MAX_CORES] |
Thread ids of EM-cores (worker and control)
Definition at line 114 of file em_core_types.h.
| odp_atomic_u32_t core_map_t::worker_core_count |
Number of EM worker cores currently running
Definition at line 62 of file em_core_types.h.
| em_core_mask_t core_map_t::worker_mask |
Mask of logic worker EM-core ids
Definition at line 102 of file em_core_types.h.