From: "Eric Barton" <[EMAIL PROTECTED]> Date: Mon, 4 Dec 2006 18:59:39 -0000 > 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(). Ok, spiff. I like that scheme better than the path I was going down. Thanks!
_______________________________________________ Lustre-devel mailing list Lustre-devel@clusterfs.com https://mail.clusterfs.com/mailman/listinfo/lustre-devel