> Here’s my understanding of how FI_DELIVERY_COMPLETE works on the
> *responder* end:  If you are doing an RMA operation, and the requester
> uses CQ_REMOTE_DATA to signal the end of the transfer to the responder,
> and the responder has FI_DELIVERY_COMPLETE set, then the responder won’t
> get a completion event until the data is actually visible to the
> responder.
>
> I ask because the man pages imply that FI_DELIVERY_COMPLETE, which is an
> operation flag, applies only to the requester side.  But it is much less
> important to notify the requester that data is visible to the responder,
> than it is to notify the responder itself.

FI_DELIVERY_COMPLETE is intended only to apply to the initiator of an operation.

The generation of a notification at the target is assumed to occur after the 
operation has completed -- i.e. any transferred data is available.  This holds 
whether the completion is an entry placed into a CQ, or a completion counter 
has been incremented.  The FI_REMOTE_CQ_DATA flag is somewhat independent of 
this.  That flag just means that application data was written into a CQ entry.

Although IB cannot generate target notification without FI_REMOTE_CQ_DATA (i.e. 
immediate data), libfabric does not require this.

The generation of a completion entry at the target is independent of the 
completion mode selected by the initiator.

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

Reply via email to