32
32
33
33
static int rml_ofi_component_open (void );
34
34
static int rml_ofi_component_close (void );
35
+ static int rml_ofi_component_register (void );
36
+
35
37
static int rml_ofi_component_init (void );
36
38
static orte_rml_base_module_t * open_conduit (opal_list_t * attributes );
37
39
static orte_rml_pathway_t * query_transports (void );
@@ -55,6 +57,7 @@ orte_rml_component_t mca_rml_ofi_component = {
55
57
ORTE_RELEASE_VERSION ),
56
58
.mca_open_component = rml_ofi_component_open ,
57
59
.mca_close_component = rml_ofi_component_close ,
60
+ .mca_register_component_params = rml_ofi_component_register
58
61
},
59
62
.data = {
60
63
/* The component is checkpoint ready */
@@ -81,6 +84,7 @@ orte_rml_ofi_module_t orte_rml_ofi = {
81
84
82
85
/* Local variables */
83
86
static bool init_done = false;
87
+ static char * ofi_transports_supported = NULL ;
84
88
85
89
static int
86
90
rml_ofi_component_open (void )
@@ -227,6 +231,21 @@ rml_ofi_component_close(void)
227
231
return ORTE_SUCCESS ;
228
232
}
229
233
234
+ static int rml_ofi_component_register (void )
235
+ {
236
+ mca_base_component_t * component = & mca_rml_ofi_component .base ;
237
+
238
+ ofi_transports_supported = strdup ("fabric,ethernet" );
239
+ mca_base_component_var_register (component , "transports" ,
240
+ "Comma-delimited list of transports to support (default=\"fabric,ethernet\"" ,
241
+ MCA_BASE_VAR_TYPE_STRING , NULL , 0 , 0 ,
242
+ OPAL_INFO_LVL_2 ,
243
+ MCA_BASE_VAR_SCOPE_LOCAL ,
244
+ & ofi_transports_supported );
245
+ opal_output (0 , "OFI TRANSPORTS %s" , ofi_transports_supported );
246
+ return ORTE_SUCCESS ;
247
+ }
248
+
230
249
void print_provider_info (struct fi_info * cur_fi )
231
250
{
232
251
//Display all the details in the fi_info structure
@@ -279,8 +298,7 @@ static orte_rml_pathway_t* query_transports(void)
279
298
/**
280
299
ofi_prov [in]: the ofi ofi_prov_id that triggered the progress fn
281
300
**/
282
- __opal_attribute_always_inline__ static inline int
283
- orte_rml_ofi_progress (ofi_transport_ofi_prov_t * prov )
301
+ static int orte_rml_ofi_progress (ofi_transport_ofi_prov_t * prov )
284
302
{
285
303
ssize_t ret ;
286
304
int count = 0 ; /* number of messages read and processed */
@@ -997,17 +1015,15 @@ static orte_rml_base_module_t* open_conduit(opal_list_t *attributes)
997
1015
}
998
1016
}
999
1017
}
1000
- /*[Debug] to check for daemon commn over ofi-ethernet, enable the default conduit ORTE_MGMT_CONDUIT over ofi */
1018
+
1001
1019
if (orte_get_attribute (attributes , ORTE_RML_TRANSPORT_TYPE , (void * * )& comp_attrib , OPAL_STRING ) &&
1002
1020
NULL != comp_attrib ) {
1003
1021
opal_output_verbose (20 ,orte_rml_base_framework .framework_output ,
1004
1022
"%s - ORTE_RML_TRANSPORT_TYPE = %s " ,
1005
1023
ORTE_NAME_PRINT (ORTE_PROC_MY_NAME ), comp_attrib );
1006
1024
comps = opal_argv_split (comp_attrib , ',' );
1007
- for (i = 0 ; NULL != comps [i ]; i ++ ) {
1008
- /* changing below to check for oob, as trying to use ofi for only mgmt conduit */
1009
- if (0 == strcasecmp (comps [i ], "fabric" ) ||
1010
- 0 == strcasecmp (comps [i ], "ethernet" )) {
1025
+ for (i = 0 ; 0 == i ; i ++ ) {
1026
+ if (NULL != strstr (ofi_transports_supported , comps [i ])) {
1011
1027
/* we are a candidate, */
1012
1028
opal_output_verbose (20 ,orte_rml_base_framework .framework_output ,
1013
1029
"%s - Forcibly returning ofi socket provider for ethernet transport request" ,
0 commit comments