[libfabric-users] FI_INJECT and fi_sendmsg

Xiong, Jianxin jianxin.xiong at intel.com
Fri Aug 16 12:01:04 PDT 2024


The inject size is the maximum allowed size, so the condition is “message size <= inject size”. The man page needs to be fixed for clarity.

The behavior of injecting with size greater than inject size is undefined. The provider has the freedom to implement it in the most efficient way. For example, some providers just have an assertion there, so it would cause assertion failure for a debugging build but would continue silently  (and may cause errors later) for a release build. In a nutshell, the expectation is that the user should ensure the size is right when using the FI_INJECT flag or calling the fi_inject*() functions.

From: Libfabric-users <libfabric-users-bounces at lists.openfabrics.org> On Behalf Of Niyaz Murshed
Sent: Friday, August 16, 2024 10:19 AM
To: Hartman, John <john.hartman at hpe.com>; libfabric-users at lists.openfabrics.org
Cc: nd <nd at arm.com>
Subject: Re: [libfabric-users] FI_INJECT and fi_sendmsg

My understand is that application need to make sure that we use inject API only if message < inject Size ( as it is done in fi_rma_bw sample).

In case of error, I would assume the below is the error.
-FI_EAGAIN
Indicates that the underlying provider currently lacks the resources needed to initiate the requested operation. This may be the result of insufficient internal buffering, in the case of FI_INJECT, or processing queues are full.

I am still new to libfabric, might be wrong… Hope someone can correct me if I am.



From: Libfabric-users <libfabric-users-bounces at lists.openfabrics.org<mailto:libfabric-users-bounces at lists.openfabrics.org>> on behalf of Hartman, John <john.hartman at hpe.com<mailto:john.hartman at hpe.com>>
Date: Friday, August 16, 2024 at 12:01 PM
To: libfabric-users at lists.openfabrics.org<mailto:libfabric-users at lists.openfabrics.org> <Libfabric-users at lists.openfabrics.org<mailto:Libfabric-users at lists.openfabrics.org>>
Subject: [libfabric-users] FI_INJECT and fi_sendmsg
Regarding the FI_INJECT flag, the fi_sendmsg man page says “This flag can only be used with messages smaller than inject_size.” What is the behavior if the message is larger than inject_size? Is the flag ignored, or is an error returned (and if so, which error)?

Also, the fi_sendmsg man page says “messages smaller than inject_size” whereas the fi_endpoint man page says that inject_size is  “the maximum size data transfer that can be associated with an inject operation”.  Which is correct, should the message be < inject_size or <= inject_size?

I’m looking at the v1.22.0 man pages.

Thanks

John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/libfabric-users/attachments/20240816/09b78e4d/attachment.htm>


More information about the Libfabric-users mailing list