Motr  M0
lnet_tm.c File Reference

Go to the source code of this file.

Functions

static bool all_tm_queues_are_empty (struct m0_net_transfer_mc *tm)
 
static int nlx_tm_timeout_buffers (struct m0_net_transfer_mc *tm, m0_time_t now)
 
static m0_time_t nlx_tm_get_buffer_timeout_tick (const struct m0_net_transfer_mc *tm)
 
static void nlx_tm_ev_worker (struct m0_net_transfer_mc *tm)
 
static int nlx_xo_core_bev_to_net_bev (struct m0_net_transfer_mc *tm, struct nlx_core_buffer_event *lcbev, struct m0_net_buffer_event *nbev)
 

Function Documentation

◆ nlx_tm_ev_worker()

static void nlx_tm_ev_worker ( struct m0_net_transfer_mc tm)
static

The entry point of the LNet transport event processing thread. It is spawned when the transfer machine starts. It completes the start-up process and then loops, handling asynchronous buffer event delivery, until the transfer machine enters the M0_NET_TM_STOPPING state. Once that state transition is detected, the thread completes its processing and terminates.

Definition at line 89 of file lnet_tm.c.

Here is the call graph for this function:

◆ nlx_tm_get_buffer_timeout_tick()

static m0_time_t nlx_tm_get_buffer_timeout_tick ( const struct m0_net_transfer_mc tm)
static

Subroutine to return the buffer timeout period for a transfer machine. The subroutine exists only for unit test control. It is only called once in the lifetime of a transfer machine.

Definition at line 76 of file lnet_tm.c.

Here is the call graph for this function:

◆ nlx_tm_timeout_buffers()

static int nlx_tm_timeout_buffers ( struct m0_net_transfer_mc tm,
m0_time_t  now 
)
static

Cancel buffer operations if they have timed out.

Parameters
tmThe transfer machine concerned.
nowThe current time.
Precondition
m0_mutex_is_locked(&tm->ntm_mutex);
Return values
Thenumber of buffers timed out.

Definition at line 45 of file lnet_tm.c.

Here is the call graph for this function: