>     > In, for instance, the ptllnd, when sending a GET request, I
>     > see tx_lnet_replymsg being set to something which is
>     > apparently being allocated from the core of lnet.  Later, I
>     > see lnet_finalize being called on that thing.

When lustre calls LNetGet, it expects the following events to be
delivered...

1. LNET_EVENT_SEND when the "GET" has been sent.
2. LNET_EVENT_REPLY when the peer has responded.

An LND that does not support "optimized" gets simply sends off the
LNET GET message and calls lnet_finalize() on it to deliver the
LNET_EVENT_SEND.  Some time later when the LND receives an LNET REPLY
it calls lnet_parse() which matches it against the MD specified in the
original GET and calls back to receive the reply payload into it.
When that has completed, the LND calls lnet_finalize() on it to
deliver the LNET_EVENT_REPLY.

An LND that supports "optimized" gets can eliminate the LNET REPLY
message in some circumstances.  But the LNET_EVENT_REPLY event must
still be delivered, so it creates one with lnet_create_reply_msg()
before it sends off the GET_REQ.  When everything has completed, it
then calls lnet_finalize() on the original GET (to deliver the
LNET_EVENT_SEND) and also on this reply message (to deliver the
LNET_EVENT_REPLY).

-- 

                Cheers,
                        Eric

---------------------------------------------------
|Eric Barton        Barton Software               |
|9 York Gardens     Tel:    +44 (117) 330 1575    |
|Clifton            Mobile: +44 (7909) 680 356    |
|Bristol BS8 4LL    Fax:    call first            |
|United Kingdom     E-Mail: [EMAIL PROTECTED]|
---------------------------------------------------


_______________________________________________
Lustre-devel mailing list
[email protected]
https://mail.clusterfs.com/mailman/listinfo/lustre-devel

Reply via email to