> 
> The fi_cq(3) man page says that
> 
>       [FI_DELIVERY_COMPLETE] applies only to reliable endpoints. For 
> operations that
> return data to the initiator, such as RMA read or atomic-fetch, the source 
> endpoint is
> also considered a destination endpoint. This is the default completion mode 
> for such
> operations.
> 
> 
> Does "default completion mode" in that last sentence really mean "default", 
> in that
> it's the completion mode that will be used if and only if no
> FI_{INJECT,TRANSMIT,DELIVERY,...}_COMPLETE flag is present in the hints to 
> fi_getinfo()
> and/or the flags to fi_readmsg() etc.?  Or does it really mean that 
> delivery_complete
> is guaranteed for transactions that produce local results, such that even if 
> for
> example FI_TRANSMIT_COMPLETE is given in the hints, RMA reads and fetching 
> atomics will
> nevertheless effectively use delivery_complete?

It's intended to mean the former.  If the application specifically requests 
some other model, then that is all that it app _should_ assume.  Note that the 
provider can always provide strong guarantees.

> (I'm pretty sure it's the former, but thought I should check.)
> 
> If it is indeed the former, when an RMA read or fetching atomic is done and
> FI_TRANSMIT_COMPLETE is in force, is there any way to tell when the data has 
> arrived?

This is probably where we can argue that delivery_complete is the minimal 
semantic that makes sense for RMA read or fetching atomic.

A more technical answer is that a fenced operation can be used to ensure that 
all prior operations meet the same completion semantic as the fenced op.  So, 
if a fenced op has deliver_complete, then the completion of the fenced op means 
that operations prior to that also meet that semantic.

I believe existing hardware provides delivery_complete semantics.  I hesitate 
to make this a requirement in case someone designs a NIC with more exotic 
caching capabilities, or if the target memory is non-host memory.

- Sean
_______________________________________________
ofiwg mailing list
[email protected]
https://lists.openfabrics.org/mailman/listinfo/ofiwg

Reply via email to