Overview
There are two types of events to account for:
...
Timeouts are also being kept at ptlrpc. These are rpc timeouts.
Refer to section 3237.5 in the manual for a description of how RPC timeouts work.
...
As shown in the above diagram whenever a tx is queued to be sent or is posted but haven't received confirmation yet, the tx_deadline is still active. The scheduler thread checks the active connections for any transmits which has passed their deadline, and then it closes those connections and notifies LNet via lnet_notify().
...
| Gliffy Diagram |
|---|
| name | GET Sequence Diagram |
|---|
| pagePin |
|---|
|
After the completion of an o2iblnd tx ib_post_send(), a completion event is added to the completion queue. This triggers kiblnd_complete to be called. If this is an IBLND_WID_TX then kiblnd_tx_complete() is called, which calls kiblnd_tx_done() if the tx is not sending, waiting or queued. In this case the tx_timeout is closed.
...
| Gliffy Diagram |
|---|
| name | o2iblnd TX FSM |
|---|
| pagePin |
|---|
|
In order to understand fully how the LND transmit timeout can be used for resends, we need to have an understanding of the transmit life cycle shown above.
...