NewMadeleine

Documentation

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

Detailed Description

Core NewMadeleine structure.

Definition at line 42 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 78 of file nm_core.h.

Referenced by nm_gate_is_in_active_list(), and nm_gate_set_active().

◆ ctrl_chunk_allocator

struct nm_ctrl_chunk_allocator_s nm_core::ctrl_chunk_allocator

allocator for control chunks

Definition at line 70 of file nm_core.h.

Referenced by nm_core_post_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 83 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 82 of file nm_core.h.

◆ dispatching_lock

nm_spinlock_t nm_core::dispatching_lock

lock for dispatching of events

Definition at line 84 of file nm_core.h.

◆ driver_list

struct nm_drv_list_s nm_core::driver_list

list of drivers.

Definition at line 64 of file nm_core.h.

◆ enable_auto_flush

int nm_core::enable_auto_flush

automatic flush after each pack_submit

Definition at line 87 of file nm_core.h.

◆ enable_gpu_support

int nm_core::enable_gpu_support

whether GPU support is enabled

Definition at line 92 of file nm_core.h.

◆ enable_isend_csum

int nm_core::enable_isend_csum

check message integrity between isend submission & completion

Definition at line 88 of file nm_core.h.

◆ enable_pwsend_timeout

int nm_core::enable_pwsend_timeout

Definition at line 89 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 91 of file nm_core.h.

◆ enable_schedopt

int nm_core::enable_schedopt

whether schedopt is enabled atop drivers

Definition at line 86 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 90 of file nm_core.h.

◆ gate_list

struct nm_gate_list_s nm_core::gate_list

list of gates.

Definition at line 63 of file nm_core.h.

◆ lock

nm_spinlock_t nm_core::lock

lock to protect req lists in core

Definition at line 44 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 77 of file nm_core.h.

◆ n_packs

int nm_core::n_packs

Definition at line 74 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 74 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 65 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 67 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 53 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 72 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 71 of file nm_core.h.

◆ pw_poll_list

struct nm_pw_poll_list_s nm_core::pw_poll_list

active pw for send/recv to poll

Definition at line 51 of file nm_core.h.

Referenced by nm_pw_completed_enqueue().

◆ req_chunk_allocator

struct nm_req_chunk_allocator_s nm_core::req_chunk_allocator

allocator for req_chunk elements

Definition at line 69 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 59 of file nm_core.h.

◆ strategy_context

puk_context_t nm_core::strategy_context

global context of the strategy

Definition at line 60 of file nm_core.h.

◆ strategy_iface

const struct nm_strategy_iface_s* nm_core::strategy_iface

interface of the selected strategy

Definition at line 61 of file nm_core.h.

◆ tag_table

struct nm_matching_tag_table_s nm_core::tag_table

matching infor for requests with tag (and any gate)

Definition at line 75 of file nm_core.h.

◆ thread_level

nm_thread_level_t nm_core::thread_level

Definition at line 45 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 80 of file nm_core.h.

◆ unpack_seq

uint64_t nm_core::unpack_seq

next sequence number for unpacks

Definition at line 73 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 76 of file nm_core.h.

Referenced by nm_matching_wildcard_bytag().


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