On Sun, May 27, 2007 at 10:19:09AM -0600, Galen Shipman wrote:
> > With current code this is not the case. Order tag is set during a
> > fragment
> > allocation. It seems wrong according to your description. Attached
> > patch fixes
> > this. If no specific ordering tag is provided to allocation
> > function order of
> > the fragment is set to be MCA_BTL_NO_ORDER. After call to send/put/
> > get order
> > is set to whatever QP was used for communication. If order is set
> > before send call
> > it is used to choose QP.
> I do set the order tag during allocation/prepare, but the defined
> semantics are that the tag is only valid after send/put/get. We can
> set them up any where we wish in the BTL, the PML however cannot rely
> on anything until after the send/put/get call. So really this is an
> issue of semantics versus implementation. The implementation I
> believe does conform to the semantics as the upper layer (PML)
> doesn't use the tag value until after a call to send/put/get.
With current approach send function doesn't know the difference between
fragment that should be ordered because PML requested it and regular
fragment without ordering requirements.