(Probably this message only for George, but I'll toss it out to the
I have a question about the sm sendi() function. What should happen if
the sendi() function attempts to write to the FIFO, but the FIFO is full?
Currently, it appears that the sendi() function returns an error code to
the PML, which assumes that the sendi() tried to send the message but
failed and so just tried to allocate a descriptor.
But is that what should happen? The condition of the FIFO being full is
a little misleading since the write is still queued for further progress
-- not in the FIFO itself but in the pending-send queue. This
distinction should perhaps not matter to the upper layers. The upper
layers should still view the send as "completed" (buffered by the MPI
implementation to be progressed later). I would think that the sendi()
function should return a SUCCESS code.
Relevent source code is
PML, line 496
BTL, line 785
FIFO write, line 18