[libfabric-users] fi_domain_bind returns function not implemented + fi_read questions

Arne arnestruck at astruck.de
Thu Oct 15 09:46:55 PDT 2020

Not really, I was under the assumption that a domain EQ is required, 
since it is used as the default EQ for associated ressources.

Thus I assume I can safely remove the creation of the domain EQ.

I have some additional questions regarding the usage of fi_rma, 
especifically fi_read:

Firstly: Is it needed to register the target local memory buffer as well 
(and if so why, since it is created by the same application)?

 From the mans I get that a file descriptor is required for this call. I 
dont think the mans are clear enough here (or I overlooked something).

Is it the local file descriptor of the locally registered memory buffer 
(case 1) or the "local" file descriptor of the remote memory region 
(case 2).

So far I get "No such file or directory" from the call. There are 2 
connected endpoints, the access key was transfered from read target to 
calling part of the application.

Both memory regions are registered.

I tried case 1 and setting the file descriptor to NULL so far. The first 
one produced said result, the latter one too except for local testing.

So I assume it is case 2, but wanted to confirm whether there is 
something I dont see.

for fi_mr_reg:

No special flags are used

modes are set to FI_READ | FI_REMOTE_READ | FI_WRITE

for fi_read:

a memory buffer is allocated and the length of the remote memory buffer 
is known to the calling side (thus the buffer is of sufficient length)

Offset stays at 0 (since all data of the target buffer is wanted)

no address is given, since I call fi_read with a connected endpoint

Endpoint supports fi_rma capability read and write variant.

Any idea where I am wrong?

greetings Arne.

Am 14.10.20 um 21:05 schrieb Hefty, Sean:
>> after upgrade to Version 1.9.1 and now using tcp provider for testing,
>> fi_domain_bind returns the function not implemented error if trying to
>> bind an event-queue to domain. Any idea why?
> The tcp provider does not support fi_domain_bind().  This is true for the current code.
> Apparently, no application has requested this functionality from the provider.  It shouldn't be difficult to add. (It probably just needs to call some utility function.)
> Are you using this to direct CM events to a single EQ?  If so, the work-around would be the bound the EPs directly to the EQ.
> - Sean

More information about the Libfabric-users mailing list