[libfabric-users] Max IOV length with verbs provider

Hefty, Sean sean.hefty at intel.com
Mon Jun 21 09:14:28 PDT 2021


> using the verbs provider (libfabric v1.12.1), I use the fi_sendmsg to send messages.
> The flag FI_INJECT_COMPLETE is used and message I/O vector has a variable length
> (iov_count).
> 
> Independently from the total size of the message, if iov_count > 20 the messages are
> not sent and EAGAIN is returned.
> This means that I can send, for example, 24 kB messages with 3 IOV entries, but not
> with 24 entries.
> 
> To be precise, EAGAIN is returned by ibv_post_send [1] and iov_count is the only
> parameter that changes in the test.
> 
> I understand that multiple causes can underlie an EAGAIN, but given the role of
> iov_count is there something I can check to start with?

Check fi_tx_attr/fi_rx_attr::iov_limit.  That's the max iov size that the provider can support.  It's possible if you run a debug version of the code, you might hit an assertion.

- Sean


More information about the Libfabric-users mailing list