[Pvfs2-developers] BMI questions

Scott Atchley atchley at myri.com
Thu Nov 30 19:58:53 EST 2006


On Nov 30, 2006, at 4:31 PM, Sam Lang wrote:

> Right now all our operations (or transactions, as you call them)  
> start with an unexpected message from the client, and end with an  
> expected message from the server.  I don't know if that's a design  
> requirement of BMI though, or just an artifact of how we use it in  
> PVFS.  I _think_ the BMI interfaces were meant to allow expected  
> messages in either direction in any order, and its left up to the  
> upper layers to make sure they get posted right, but again, I would  
> have to defer to one of the BMI sages.

Hmmm. I assumed that for any operation, that there would be a back  
and forth between client and server ending with a expected send from  
server to the client:

Client          Server
    |     unex      |
    |-------------->|
    |               |
    |      ex       |
    |<--------------|
    |               |
    |      ex       |
    |-------------->|
    |               |
    |      ex       |
    |<--------------|
    |               |

with a minimum of unexpected client to server followed by an expected  
from server to client. If this is the case I might be able to do a  
simple flow control on the client using a reference count (increment  
on send to server S and decrement on receive from S).

Are you saying that a single operation may not ping pong back and  
forth but have multiple expected sends in a single direction?

Client          Server
    |     unex      |
    |-------------->|
    |               |
    |      ex       |
    |<--------------|
    |               |
    |      ex       |
    |-------------->|
    |               |
    |      ex       |
    |-------------->|
    |               |
    |      ex       |
    |-------------->|
    |               |
    |      ex       |
    |<--------------|
    |               |

If so, would each of the receives (and matching sends) use different  
tags? Also, this case presents a resource starvation risk. Since the  
BMI method does not know about the entire operation (how many sends/ 
receives), it is possible that it could start the operation but not  
be able to get the additional resources for the subsequent sends/ 
receives to complete it.

> Are you able to do some kind of pre-posting if you know there's  
> always an expected coming back?
>
> -sam

I assumed that BMI always posted a receive for an expected incoming  
send? Does it not? I would hope that BMI or a higher layer would pre- 
post the receive before calling the send function. If not, let me know.

Scott


More information about the Pvfs2-developers mailing list