Then let me provide a more elaborate answer.
In the original design of the btl_sendi operation we do not provide an upper
limit for the sendi (in the same sense as the eager protocol). Thus, an upper
layer (PML in this instance) cannot know if the sendi will succeed or not
before the call itsel
George replied to me in IM -- posting here for completeness:
> Yes, there is a reason. if sendi succeeds, it sends a very small data (at
> least on the devices that supports it), otherwise it returns a descriptor
> similar to btl_alloc()
> thus you will have to pack the data yourself, and the PM