NewMadeleine

Documentation

nm_core Struct Reference

Core NewMadeleine structure. More...

#include <nm_core.h>

Collaboration diagram for nm_core:

Data Fields

nm_spinlock_t lock
 lock to protect req lists in core More...
 
nm_thread_level_t thread_level
 
struct nm_pkt_wrap_list_s pending_send_list
 active pw for send to poll More...
 
struct nm_pkt_wrap_list_s pending_recv_list
 active pw for recv to poll More...
 
struct nm_pkt_wrap_list_s prefetch_large_send
 large packets to prefetch More...
 
puk_component_t strategy_component
 component for the selected strategy More...
 
puk_context_t strategy_context
 global context of the strategy More...
 
const struct nm_strategy_iface_sstrategy_iface
 interface of the selected strategy More...
 
struct nm_gate_list_s gate_list
 list of gates. More...
 
struct nm_drv_list_s driver_list
 list of drivers. More...
 
int nb_drivers
 number of drivers in drivers list More...
 
struct nm_core_task_lfqueue_s pending_tasks
 core tasks to execute asynchronously; enqueued from non-locked sections; read from locked sections More...
 
struct nm_req_chunk_allocator_s req_chunk_allocator
 allocator for req_chunk elements More...
 
struct nm_ctrl_chunk_allocator_s ctrl_chunk_allocator
 allocator for control chunks More...
 
struct nm_pw_nohd_allocator_s pw_nohd_allocator
 allocator for header-less pw More...
 
struct nm_pw_buf_allocator_s pw_buf_allocator
 allocator for pw with contiguous buffer More...
 
uint64_t unpack_seq
 next sequence number for unpacks More...
 
int n_packs
 
int n_unpacks
 number of pending packs & unpacks More...
 
struct nm_matching_tag_table_s tag_table
 matching infor for requests with tag (and any gate) More...
 
struct nm_matching_wildcard_table_s wildcard_table
 matching info for wildcard requests More...
 
struct nm_core_monitor_vect_s monitors
 monitors for upper layers to track events in nmad core More...
 
struct nm_active_gate_list_s active_gates
 list of gates with active requests More...
 
struct nm_trk_hashtable_s trk_table
 trk table hashed by component status; used for reverse lookup More...
 
struct nm_core_dispatching_event_lfqueue_s dispatching_events
 queue for events to dispatch More...
 
struct nm_core_dispatching_event_allocator_s dispatching_event_allocator
 allocator for elements of above list More...
 
nm_spinlock_t dispatching_lock
 lock for dispatching of events More...
 
int enable_schedopt
 whether schedopt is enabled atop drivers More...
 
int enable_auto_flush
 automatic flush after each pack_submit More...
 
int enable_isend_csum
 check message integrity between isend submission & completion More...
 
int enable_pwsend_timeout
 
int enable_send_prefetch
 whether to prefetch large messages for send while rdv is in progress More...
 
int enable_recv_prefetch
 whether to prefetch large messages for recv while rdv is in progress More...
 

Detailed Description

Core NewMadeleine structure.

Definition at line 38 of file nm_core.h.

Field Documentation

◆ active_gates

struct nm_active_gate_list_s nm_core::active_gates

list of gates with active requests

Definition at line 75 of file nm_core.h.

Referenced by nm_gate_is_in_active_list(), nm_gate_set_active(), and nm_strat_schedule().

◆ ctrl_chunk_allocator

struct nm_ctrl_chunk_allocator_s nm_core::ctrl_chunk_allocator

allocator for control chunks

Definition at line 67 of file nm_core.h.

Referenced by nm_strat_pack_ctrl(), and nm_tactic_pack_ctrl().

◆ dispatching_event_allocator

struct nm_core_dispatching_event_allocator_s nm_core::dispatching_event_allocator

allocator for elements of above list

Definition at line 80 of file nm_core.h.

◆ dispatching_events

struct nm_core_dispatching_event_lfqueue_s nm_core::dispatching_events

queue for events to dispatch

Definition at line 79 of file nm_core.h.

◆ dispatching_lock

nm_spinlock_t nm_core::dispatching_lock

lock for dispatching of events

Definition at line 81 of file nm_core.h.

◆ driver_list

struct nm_drv_list_s nm_core::driver_list

list of drivers.

Definition at line 61 of file nm_core.h.

◆ enable_auto_flush

int nm_core::enable_auto_flush

automatic flush after each pack_submit

Definition at line 84 of file nm_core.h.

◆ enable_isend_csum

int nm_core::enable_isend_csum

check message integrity between isend submission & completion

Definition at line 85 of file nm_core.h.

◆ enable_pwsend_timeout

int nm_core::enable_pwsend_timeout

Definition at line 86 of file nm_core.h.

◆ enable_recv_prefetch

int nm_core::enable_recv_prefetch

whether to prefetch large messages for recv while rdv is in progress

Definition at line 88 of file nm_core.h.

◆ enable_schedopt

int nm_core::enable_schedopt

whether schedopt is enabled atop drivers

Definition at line 83 of file nm_core.h.

◆ enable_send_prefetch

int nm_core::enable_send_prefetch

whether to prefetch large messages for send while rdv is in progress

Definition at line 87 of file nm_core.h.

◆ gate_list

struct nm_gate_list_s nm_core::gate_list

list of gates.

Definition at line 60 of file nm_core.h.

◆ lock

nm_spinlock_t nm_core::lock

lock to protect req lists in core

Definition at line 40 of file nm_core.h.

◆ monitors

struct nm_core_monitor_vect_s nm_core::monitors

monitors for upper layers to track events in nmad core

Definition at line 74 of file nm_core.h.

◆ n_packs

int nm_core::n_packs

Definition at line 71 of file nm_core.h.

Referenced by nm_core_polling_level().

◆ n_unpacks

int nm_core::n_unpacks

number of pending packs & unpacks

Definition at line 71 of file nm_core.h.

Referenced by nm_core_polling_level().

◆ nb_drivers

int nm_core::nb_drivers

number of drivers in drivers list

Definition at line 62 of file nm_core.h.

◆ pending_recv_list

struct nm_pkt_wrap_list_s nm_core::pending_recv_list

active pw for recv to poll

Definition at line 48 of file nm_core.h.

◆ pending_send_list

struct nm_pkt_wrap_list_s nm_core::pending_send_list

active pw for send to poll

Definition at line 47 of file nm_core.h.

◆ pending_tasks

struct nm_core_task_lfqueue_s nm_core::pending_tasks

core tasks to execute asynchronously; enqueued from non-locked sections; read from locked sections

Definition at line 64 of file nm_core.h.

Referenced by nm_core_polling_level(), and nm_core_task_enqueue().

◆ prefetch_large_send

struct nm_pkt_wrap_list_s nm_core::prefetch_large_send

large packets to prefetch

Definition at line 50 of file nm_core.h.

◆ pw_buf_allocator

struct nm_pw_buf_allocator_s nm_core::pw_buf_allocator

allocator for pw with contiguous buffer

Definition at line 69 of file nm_core.h.

◆ pw_nohd_allocator

struct nm_pw_nohd_allocator_s nm_core::pw_nohd_allocator

allocator for header-less pw

Definition at line 68 of file nm_core.h.

◆ req_chunk_allocator

struct nm_req_chunk_allocator_s nm_core::req_chunk_allocator

allocator for req_chunk elements

Definition at line 66 of file nm_core.h.

Referenced by nm_req_chunk_alloc(), and nm_req_chunk_destroy().

◆ strategy_component

puk_component_t nm_core::strategy_component

component for the selected strategy

Definition at line 56 of file nm_core.h.

◆ strategy_context

puk_context_t nm_core::strategy_context

global context of the strategy

Definition at line 57 of file nm_core.h.

Referenced by nm_strat_pack_ctrl(), nm_strat_schedule(), and nm_strat_submit_req_chunk().

◆ strategy_iface

const struct nm_strategy_iface_s* nm_core::strategy_iface

interface of the selected strategy

Definition at line 58 of file nm_core.h.

Referenced by nm_strat_gate_schedule(), nm_strat_pack_ctrl(), nm_strat_schedule(), and nm_strat_submit_req_chunk().

◆ tag_table

struct nm_matching_tag_table_s nm_core::tag_table

matching infor for requests with tag (and any gate)

Definition at line 72 of file nm_core.h.

◆ thread_level

nm_thread_level_t nm_core::thread_level

Definition at line 41 of file nm_core.h.

◆ trk_table

struct nm_trk_hashtable_s nm_core::trk_table

trk table hashed by component status; used for reverse lookup

Definition at line 77 of file nm_core.h.

◆ unpack_seq

uint64_t nm_core::unpack_seq

next sequence number for unpacks

Definition at line 70 of file nm_core.h.

◆ wildcard_table

struct nm_matching_wildcard_table_s nm_core::wildcard_table

matching info for wildcard requests

Definition at line 73 of file nm_core.h.

Referenced by nm_matching_wildcard_bytag().


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