[openib-general] mthca FMR correctness (and memory windows)

Michael Krause krause at cup.hp.com
Thu Mar 23 09:52:02 PST 2006


At 04:30 PM 3/20/2006, Talpey, Thomas wrote:
>At 06:00 PM 3/20/2006, Sean Hefty wrote:
> >Can you provide more details on this statement?  When are you fencing 
> the send
> >queue when using memory windows?
>
>Infiniband 101, and VI before it. Memory windows fence later operations
>on the send queue until the bind completes. It's a misguided attempt to
>make upper layers' job "easier" because they can post a bind and then
>immediately post a send carrying the rkey. In reality, it introduces bubbles
>in the send pipeline and reduces op rates dramatically.

The requirement / semantics were derived from the ULP being used to 
construct the technology.  The combination of a bind-n-send operation was 
to reduce the software interactions with the device by consolidating this 
into a combo operation.  I do not follow your logic that this creates a 
bubble in the send pipeline as there were also ordering and correctness 
issues w.r.t. subsequent operations to the send.  The bind-n-send is a 
single operation and its fence semantics were required to allow the bind to 
complete before informing the remote of the subsequent information in order 
to avoid race conditions.

>I argued against them in iWARP verbs, and lost. If Linux could introduce
>a way to make the fencing behavior optional, I would lead the parade.
>I fear most hardware is implemented otherwise.

Hardware generally implements operations in the order they are posted to a 
given QP, i.e. it is a serial execution flow that allows pipelined 
operations to be posted and executed by the hardware.  Scaling is achieved 
by executing across a set of QP and thus a set of resources.  The ordering 
domain requirements are kept simple to allow low-cost hardware 
implementations.  This does not preclude software from executing across a 
set of QP in any order that it desires.

>Yes, I know about binding on a separate queue. That doesn't work, because 
>windows are semantically not fungible (for security reasons).

You could always simply allow a region to be accessible across multiple 
operations but then again storage argued that it must only be accessible 
for a single op thus things like FMR, bind-n-send, etc. were all 
created.  To say that storage was not listened to or their needs were not 
met or balanced against what is practical to implement in either the 
creation of IB or iWARP is simply incorrect.

Mike


>Tom.
>
>_______________________________________________
>openib-general mailing list
>openib-general at openib.org
>http://openib.org/mailman/listinfo/openib-general
>
>To unsubscribe, please visit 
>http://openib.org/mailman/listinfo/openib-general
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20060323/95ba2bce/attachment.html>


More information about the general mailing list