[ofa-general] post_recv question

Robert Pearson rpearson at systemfabricworks.com
Thu Feb 21 12:43:31 PST 2008



Seems the consensus is that when you return from post_recv() the buffer 
can be assumed to be available for incoming SEND placement...

As you pointed out earlier you have done a PIO. Nothing is said about the
'readiness'. A race between a doorbell and an incoming send packet isn't
really meaningful if they happen independently at or very nearly the same
time. Either it makes it or it doesn't. This is like a two processor
load/store race in memory. The order is really arbitrary if the two
operations are independent.

On the other hand if you do the doorbell to post the receive buffer and
*then* do another doorbell to post a send operation that causes the
existence of the buffer to be made known to the other side and *then* the
other side sends a message that has to work so the HCA has to complete the
one doorbell before it can handle the second. If you notify out of band then
you mileage may vary.







More information about the general mailing list