Skip to content

Commit

Permalink
DAOS-13086 cart: add support for ofi tcp w/o rxm (#12436) (#12530)
Browse files Browse the repository at this point in the history
- add support for ofi tcp without rxm

Signed-off-by: Jerome Soumagne <jerome.soumagne@intel.com>
  • Loading branch information
soumagne authored Jun 28, 2023
1 parent 3686029 commit b5fccc6
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 34 deletions.
6 changes: 5 additions & 1 deletion src/cart/crt_hg.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,14 @@ struct crt_na_dict crt_na_dict[] = {
.nad_str = "ofi+gni",
.nad_contig_eps = true,
.nad_port_bind = false,
}, {
.nad_type = CRT_PROV_OFI_TCP,
.nad_str = "ofi+tcp",
.nad_contig_eps = true,
.nad_port_bind = true,
}, {
.nad_type = CRT_PROV_OFI_TCP_RXM,
.nad_str = "ofi+tcp;ofi_rxm",
.nad_alt_str = "ofi+tcp",
.nad_contig_eps = true,
.nad_port_bind = true,
}, {
Expand Down
29 changes: 29 additions & 0 deletions src/cart/crt_hg.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,35 @@ struct crt_rpc_priv;
struct crt_common_hdr;
struct crt_corpc_hdr;

/**
* Enumeration specifying providers supported by the library
*/
typedef enum {
CRT_PROV_SM = 0,
CRT_PROV_OFI_SOCKETS,
CRT_PROV_OFI_VERBS_RXM,
CRT_PROV_OFI_GNI,
CRT_PROV_OFI_TCP,
CRT_PROV_OFI_TCP_RXM,
CRT_PROV_OFI_CXI,
CRT_PROV_OFI_OPX,
CRT_PROV_OFI_LAST = CRT_PROV_OFI_OPX,
CRT_PROV_UCX_RC,
CRT_PROV_UCX_UD,
CRT_PROV_UCX_RC_UD,
CRT_PROV_UCX_RC_O,
CRT_PROV_UCX_UD_O,
CRT_PROV_UCX_RC_UD_O,
CRT_PROV_UCX_RC_X,
CRT_PROV_UCX_UD_X,
CRT_PROV_UCX_RC_UD_X,
CRT_PROV_UCX_DC_X,
CRT_PROV_UCX_TCP,
CRT_PROV_UCX_LAST = CRT_PROV_UCX_TCP,
/* Note: This entry should be the last valid one in enum */
CRT_PROV_COUNT,
CRT_PROV_UNKNOWN = -1,
} crt_provider_t;

crt_provider_t
crt_prov_str_to_prov(const char *prov_str);
Expand Down
8 changes: 4 additions & 4 deletions src/cart/crt_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -546,17 +546,17 @@ prov_settings_apply(bool primary, crt_provider_t prov, crt_init_options_t *opt)

if (prov == CRT_PROV_OFI_CXI)
mrc_enable = 1;
else {
/* Use tagged messages for other providers, disable multi-recv */
apply_if_not_set("NA_OFI_UNEXPECTED_TAG_MSG", "1");
}

d_getenv_int("CRT_MRC_ENABLE", &mrc_enable);
if (mrc_enable == 0) {
D_INFO("Disabling MR CACHE (FI_MR_CACHE_MAX_COUNT=0)\n");
setenv("FI_MR_CACHE_MAX_COUNT", "0", 1);
}

/* Use tagged messages for other providers, disable multi-recv */
if (prov != CRT_PROV_OFI_CXI && prov != CRT_PROV_OFI_TCP)
apply_if_not_set("NA_OFI_UNEXPECTED_TAG_MSG", "1");

g_prov_settings_applied[prov] = true;
}

Expand Down
29 changes: 0 additions & 29 deletions src/include/cart/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,35 +90,6 @@ typedef struct crt_init_options {
char *cio_auth_key;
} crt_init_options_t;

/**
* Enumeration specifying providers supported by the library
*/
typedef enum {
CRT_PROV_SM = 0,
CRT_PROV_OFI_SOCKETS,
CRT_PROV_OFI_VERBS_RXM,
CRT_PROV_OFI_GNI,
CRT_PROV_OFI_TCP_RXM,
CRT_PROV_OFI_CXI,
CRT_PROV_OFI_OPX,
CRT_PROV_OFI_LAST = CRT_PROV_OFI_OPX,
CRT_PROV_UCX_RC,
CRT_PROV_UCX_UD,
CRT_PROV_UCX_RC_UD,
CRT_PROV_UCX_RC_O,
CRT_PROV_UCX_UD_O,
CRT_PROV_UCX_RC_UD_O,
CRT_PROV_UCX_RC_X,
CRT_PROV_UCX_UD_X,
CRT_PROV_UCX_RC_UD_X,
CRT_PROV_UCX_DC_X,
CRT_PROV_UCX_TCP,
CRT_PROV_UCX_LAST = CRT_PROV_UCX_TCP,
/* Note: This entry should be the last valid one in enum */
CRT_PROV_COUNT,
CRT_PROV_UNKNOWN = -1,
} crt_provider_t;


typedef int crt_status_t;
/**
Expand Down

0 comments on commit b5fccc6

Please sign in to comment.