> I actually thought about doing that a bit, but wasn't sure it 
> was safe for B to be doing a PUT involving the lnet_hdr_t on
> which A was already doing a GET.

> If the answer is that that is safe, I think my problem's solved.

Yes it's safe.  All the LNET headers that the LND is asked to 
end/receive will always be in separate buffers, so there is no
risk of them getting trampled on - e.g. The REPLY header created
in response to a GET isn't the just-received GET header - it's a
brand new one in its own buffer.

And all the lnet_parse() does (apart from check header format) is
find matching buffers from incoming headers.  GET and PUT headers
contain matchbits and a portal number for this.  And REPLY and ACK
messages contain an abstract handle (lnet_handle_wire_t).  This handle
is included in the outgoing GET or PUT and copied into the REPLY
or optional ACK that is sent in response, so that when they arrive,
LNET can find the MD associated with the original LNetGet() or LNetPut().

                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
Lustre-devel@clusterfs.com
https://mail.clusterfs.com/mailman/listinfo/lustre-devel

Reply via email to