[libfabric-users] Shared Rx and Connected

Doug Oucharek dougso at me.com
Mon Sep 9 13:33:52 PDT 2019



> On Sep 9, 2019, at 1:18 PM, Hefty, Sean <sean.hefty at intel.com> wrote:
> 
>> Longer term, it seems we could really use another fi_cq_readfrom() specific to
>> connected endpoints.  Rather than return an fi_addr_t, it should return a fid_ep
>> pointer.  It would be great to extend fi_cq_readfrom() with an extra parameter, but
>> that would break existing code so perhaps creating a new call would be best.  Something
>> like:
>> 
>> ssize_t fi_cq_readfromconn(struct fid_cq *cq, void *buf, size_t count,
>>    struct fid_eq **src_ep);
>> The local context could be retrieved from the context of the src_ep’s.
> 
> The problem is that CQs are not limited to a specific EP type.  Fi_cq_readfrom() uses
> 
> 	fi_addr_t *src_addr
> 
> as the output parameter.  Fi_addr_t is uint64_t.  There might be a way to make it work without breaking apps by returning a different pointer value if the completion is associated with a connected EP.

Good point.  Did not think about that.  I like your suggestion of having a different pointer type based on whether we are connected or connectionless.  The only problem: how to communicate which type of pointer it is per returned element?
> 
>> Did you want me to create an issue on this to track it?
> 
> Yes, please.

Will do.



More information about the Libfabric-users mailing list