[libfabric-users] multi-receive CQ entry with FI_MULTI_RECV, not the last one read by fi_cq_read()?

Hefty, Sean sean.hefty at intel.com
Wed Jun 24 12:39:51 PDT 2020

> I sent a follow-up this morning, which you may not have seen yet.  In that I
> hypothesized that this was due to the CQ entry ordering not being the same as the
> message ordering in the buffer because I'd thrown FI_ORDER_SAS on both the sending and
> receiving endpoints, and the FI_MULTI_RECEIVE CQ entry was effectively in buffer order
> rather than CQ order.

Completion order is separate from data order and not guaranteed unless FI_ORDER_STRICT has been enabled.  I don't know how you structured your assert, but the completion with FI_MULTI_RECV flag set should be last, as it indicates that the buffer is safe to repost.

> To answer your other questions, this was with the 1.10.1 release tarball and I'm only
> using one multi-receive buffer at a time.

The fixes I was referring to are in that release.

- Sean

More information about the Libfabric-users mailing list