[ofiwg] fi_msg : Is it possible to receive partial data from the message?

Ioannis Charalampidis ioannis.charalampidis at cern.ch
Thu Jan 21 05:13:34 PST 2016

Hi all,

I couldn't find an answer from the man pages, and I didn't want to open 
a ticket in Github, so I decided to ask this on the mailing list.. so 
here it is:

I am using the sockets provider, libfabric 1.2.0, and I have an EP_MSG 
connection between two endpoints.
I am using fi_sendmsg on one endpoint to send a scatter-gather list of 3 
buffers (two headers and a payload).

On the receiving endpoint I am using fi_recvmsg, having populated only 1 
item in the scatter-gather list, expecting to receive the first few 
bytes of the first header. (That's because this header contains 
additional information about the overall message size and I need this in 
order to allocate the payload buffers).

I was expecting the function to fill the data and wait for a next call 
to collect the rest, however it just fails with FI_ETRUNC, discarding 
the rest of the message.

Therefore I wanted to ask, if there is there any way to:
1) Wait for CQ when the message arrives
2) Peek the first few bytes (header)
3) Then read the entire buffer

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofiwg/attachments/20160121/546f5db2/attachment.html>

More information about the ofiwg mailing list