[ofiwg] provider specific definitions

Byrne, John (Labs) john.l.byrne at hpe.com
Tue Sep 14 11:27:55 PDT 2021


Sean,

For cases when a provider is defining an ops vector for fi_open(), I think option (1) is clearly the way to go.

The discussion in PR 7054 is interesting.  I think you are very close to having the right answer in your response:

--- a/include/rdma/fi_endpoint.h
+++ b/include/rdma/fi_endpoint.h
@@ -66,6 +66,7 @@ enum {
        FI_OPT_RECV_BUF_SIZE,
        FI_OPT_TX_SIZE,
        FI_OPT_RX_SIZE,
+       FI_OPT_EFA_RNR_RETRY = (1U | FI_PROV_SPECIFIC),
 };

I think in fi_endpoint.h we should  define a FI_OPT_PROV_SPECIFIC with a comment showing  a generic example, but directing that the actual definition be added to fi_ext.h or a provider-specific fi_ext_xxxx.h file. (If they are going to have a provider-specific file for ops vectors, then I'd think you'd want all the definitions in one place, but if it was just the enum, that could be in fi_ext.h)   You'd want similar additions to other enums, but that could be done on an as-needed basis.

- John Byrne

-----Original Message-----
From: ofiwg <ofiwg-bounces at lists.openfabrics.org> On Behalf Of Hefty, Sean
Sent: Tuesday, September 14, 2021 9:11 AM
To: ofiwg at lists.openfabrics.org
Subject: [ofiwg] provider specific definitions

This email is in response to a PR which adds an EFA specific extension:

https://github.com/ofiwg/libfabric/pull/7054

My question to the group is, what policy should we use for exporting provider specific definitions to applications? 

Option 1 is a provider specific header file.  For example:

https://github.com/ofiwg/libfabric/blob/main/prov/usnic/src/fi_ext_usnic.h

Given the contents, this option makes sense for usnic.

However, there are cases (e.g. PR 7054), where the extensions are minimal.  Given that provider extensions have been rare, I propose using fi_ext.h.  This would make it easier on the apps, and provide better visibility in the definitions to avoid unnecessary overlap between providers (to help avoid application coding errors).

A third alternative is for very simple extensions to be defined in one of the main header files (e.g. fi_endpoint.h).  This option would work for PR 7054.

- Sean
_______________________________________________
ofiwg mailing list
ofiwg at lists.openfabrics.org
https://lists.openfabrics.org/mailman/listinfo/ofiwg 


More information about the ofiwg mailing list