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

Reply via email to