[openib-general] basic IB doubt

Michael Krause krause at cup.hp.com
Fri Aug 25 15:55:43 PDT 2006


At 11:55 AM 8/25/2006, Greg Lindahl wrote:
>On Fri, Aug 25, 2006 at 10:00:50AM -0400, Thomas Bachman wrote:
>
> > Not that I have any stance on this issue, but is this is the text in the
> > spec that is being debated?
> >
> > (page 269, section 9.5, Transaction Ordering):
> > "An application shall not depend upon the order of data writes to
> > memory within a message. For example, if an application sets up
> > data buffers that overlap, for separate data segments within a
> > message, it is not guaranteed that the last sent data will always
> > overwrite the earlier."
>
>No. The case we're talking about is different from the example.
>There's text elsewhere which says, basically, that you can't access
>the data buffer until seeing the completion.


> > I'm assuming that the spec authors had reason for putting this in there, so
> > maybe they could provide guidance here?

We put that text there to accommodate differing memory controller 
architectures / coherency protocol capabilities / etc.  Basically, there is 
no way to guarantee that the memory is in a usable and correct state until 
the completion is seen.  This was intended to guide software to not peek at 
memory but to examine a completion queue entry so that if memory is updated 
out of order, silent data corruption would not occur.


>I can't speak for the authors, but as an implementor, this has a huge 
>impact on implementation.
>
>For example, on an architecture where you need to do work such as flushing 
>the cache before accessing DMAed data, that's done in the completion. x86 
>in general is not such an architecture, but they exist. IB is intended to 
>be portable to any CPU architecture.

Invalidation protocol is one concern.  The other is the a completion 
notification also often acts as a flush of the local I/O fabric as 
well.  In the case of a RDMA Write, the only way to safely determine 
complete delivery was to have a RDMA Write / Send with completion 
combination or a RDMA Write / RDMA Read depending upon which side required 
such completion knowledge.


>For iWarp, the issue is that packets are frequently reordered.

Neither IP or Ethernet re-order packets that often in practice.  Same is 
true for packet drop rates (the real issue for packet drop is the impact on 
performance and recovery times which is why IB was not designed to work 
over long or diverse topologies where intermediate elements may see what 
might be termed a high packet loss rate).

Mike


>-- greg
>
>
>_______________________________________________
>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/20060825/5e16ab36/attachment.html>


More information about the general mailing list