EM-ODP 4.4.0
Event Machine on ODP
Loading...
Searching...
No Matches
em_locm_t Struct Reference

#include <em_mem.h>

Collaboration diagram for em_locm_t:

Data Fields

em_locm_current_t current
 
idle_state_t idle_state
 
unsigned int dispatch_cnt
 
unsigned int poll_drain_dispatch_cnt
 
int event_burst_cnt
 
int core_id
 
local_queues_t local_queues
 
uint64_t local_event_cnt
 
em_input_poll_func_t input_poll_fn
 
em_output_drain_func_t output_drain_fn
 
bool atomic_group_released
 
bool is_sched_paused
 
bool is_em_core
 
bool is_external_thread
 
bool is_term_thread_done
 
bool is_core_local_inited
 
odp_time_t dispatch_last_run
 
odp_time_t poll_ctrl_interval_time
 
odp_time_t poll_drain_dispatch_last_run
 
odp_time_t poll_drain_interval_time
 
pid_t init_pid
 
eo_elem_tstart_eo_elem
 
uint64_t error_count
 
em_log_func_t log_fn
 
em_vlog_func_t vlog_fn
 
sync_api_t sync_api
 
uint64_t debug_ts [EM_DEBUG_TSP_LAST]
 
output_queue_track_t output_queue_track
 
em_conf_local_t conf_local
 
event_hdr_t evhdr_nonem
 
void *end[0] ENV_CACHE_LINE_ALIGNED
 

Detailed Description

EM core local data

Definition at line 226 of file em_mem.h.

Field Documentation

◆ atomic_group_released

bool em_locm_t::atomic_group_released

em_atomic_processing_end() called during event dispatch

Definition at line 250 of file em_mem.h.

◆ conf_local

em_conf_local_t em_locm_t::conf_local

EM local configuration as passed by em_init_local(conf_local)

Definition at line 295 of file em_mem.h.

◆ core_id

int em_locm_t::core_id

EM core id for this core

Definition at line 239 of file em_mem.h.

◆ current

em_locm_current_t em_locm_t::current

EM core/local current state

Definition at line 228 of file em_mem.h.

◆ debug_ts

uint64_t em_locm_t::debug_ts[EM_DEBUG_TSP_LAST]

dispatcher debug timestamps (ns)

Definition at line 289 of file em_mem.h.

◆ dispatch_cnt

unsigned int em_locm_t::dispatch_cnt

Number of dispatch rounds since previous polling of ctrl queues

Definition at line 233 of file em_mem.h.

◆ dispatch_last_run

odp_time_t em_locm_t::dispatch_last_run

Time when polling of ctrl queues where last done

Definition at line 263 of file em_mem.h.

◆ ENV_CACHE_LINE_ALIGNED

void* end [0] em_locm_t::ENV_CACHE_LINE_ALIGNED

Guarantee that size is a multiple of cache line size

Definition at line 309 of file em_mem.h.

◆ error_count

uint64_t em_locm_t::error_count

The number of errors on a core

Definition at line 277 of file em_mem.h.

◆ event_burst_cnt

int em_locm_t::event_burst_cnt

The number of events from the scheduler to dispatch

Definition at line 237 of file em_mem.h.

◆ evhdr_nonem

event_hdr_t em_locm_t::evhdr_nonem

Non-EM events don't have an event header of their own, use a temporary core-local event header instead. Initialized to all-zero with .event_type = EM_EVENT_TYPE_ODP to avoid having ev_hdr == NULL in the code and checks for it. Using a tmp event header, instead of NULL checks, speeds up the code.

em_locm_t::evhdr_nonem.event_type = EM_EVENT_TYPE_ODP;

Definition at line 306 of file em_mem.h.

◆ idle_state

idle_state_t em_locm_t::idle_state

Idle state of the core, used when calling idle hooks

Definition at line 231 of file em_mem.h.

◆ init_pid

pid_t em_locm_t::init_pid

PID when TLS was initialized (for detecting forked children)

Definition at line 272 of file em_mem.h.

◆ input_poll_fn

em_input_poll_func_t em_locm_t::input_poll_fn

Dispatch callback: input_poll_fn() for this core

Definition at line 245 of file em_mem.h.

◆ is_core_local_inited

bool em_locm_t::is_core_local_inited

Has core-local initialization completed on this core?

Definition at line 260 of file em_mem.h.

◆ is_em_core

bool em_locm_t::is_em_core

Is this an EM worker or control core? Not an external EM thread

Definition at line 254 of file em_mem.h.

◆ is_external_thread

bool em_locm_t::is_external_thread

Is thread external to EM (doesn't participate in event dispatching)

Definition at line 256 of file em_mem.h.

◆ is_sched_paused

bool em_locm_t::is_sched_paused

Is the scheduler paused on this core (for odp_sched_pause/resume())

Definition at line 252 of file em_mem.h.

◆ is_term_thread_done

bool em_locm_t::is_term_thread_done

Is thread termination completed?

Definition at line 258 of file em_mem.h.

◆ local_event_cnt

uint64_t em_locm_t::local_event_cnt

The number of local queue events dispatched during the em_dispatch...() call

Definition at line 243 of file em_mem.h.

◆ local_queues

local_queues_t em_locm_t::local_queues

Local queues, i.e. storage for events to local queues

Definition at line 241 of file em_mem.h.

◆ log_fn

em_log_func_t em_locm_t::log_fn

EM-core local log function

Definition at line 280 of file em_mem.h.

◆ output_drain_fn

em_output_drain_func_t em_locm_t::output_drain_fn

Dispatch callback: output_drain_fn() for this core

Definition at line 247 of file em_mem.h.

◆ output_queue_track

output_queue_track_t em_locm_t::output_queue_track

Track output-queues used during this dispatch round (burst)

Definition at line 292 of file em_mem.h.

◆ poll_ctrl_interval_time

odp_time_t em_locm_t::poll_ctrl_interval_time

Ctrl queue poll interval as core-local time (converted per-core)

Definition at line 265 of file em_mem.h.

◆ poll_drain_dispatch_cnt

unsigned int em_locm_t::poll_drain_dispatch_cnt

Number of dispatch rounds since previous call of poll/drain functions

Definition at line 235 of file em_mem.h.

◆ poll_drain_dispatch_last_run

odp_time_t em_locm_t::poll_drain_dispatch_last_run

Time when poll and drain functions were last called

Definition at line 267 of file em_mem.h.

◆ poll_drain_interval_time

odp_time_t em_locm_t::poll_drain_interval_time

Poll/drain interval as core-local time (converted per-core)

Definition at line 269 of file em_mem.h.

◆ start_eo_elem

eo_elem_t* em_locm_t::start_eo_elem

EO start-function ongoing, buffer all events and send after start

Definition at line 275 of file em_mem.h.

◆ sync_api

sync_api_t em_locm_t::sync_api

Synchronous API

Definition at line 286 of file em_mem.h.

◆ vlog_fn

em_vlog_func_t em_locm_t::vlog_fn

EM-core local log function with va_list

Definition at line 283 of file em_mem.h.


The documentation for this struct was generated from the following file: