6
6
* Copyright (c) 2015-2016 Los Alamos National Security, LLC. All rights
7
7
* reserved.
8
8
* Copyright (c) 2018 Amazon.com, Inc. or its affiliates. All Rights reserved.
9
+ * Copyright (c) 2020 Triad National Security, LLC. All rights
10
+ * reserved.
9
11
* $COPYRIGHT$
10
12
*
11
13
* Additional copyrights may follow
@@ -28,8 +30,6 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
28
30
bool enable_mpi_threads );
29
31
30
32
static int param_priority ;
31
- static char * prov_include ;
32
- static char * prov_exclude ;
33
33
static int control_progress ;
34
34
static int data_progress ;
35
35
static int av_type ;
@@ -131,24 +131,6 @@ ompi_mtl_ofi_component_register(void)
131
131
MCA_BASE_VAR_SCOPE_READONLY ,
132
132
& param_priority );
133
133
134
- prov_include = NULL ;
135
- mca_base_component_var_register (& mca_mtl_ofi_component .super .mtl_version ,
136
- "provider_include" ,
137
- "Comma-delimited list of OFI providers that are considered for use (e.g., \"psm,psm2\"; an empty value means that all providers will be considered). Mutually exclusive with mtl_ofi_provider_exclude." ,
138
- MCA_BASE_VAR_TYPE_STRING , NULL , 0 , 0 ,
139
- OPAL_INFO_LVL_1 ,
140
- MCA_BASE_VAR_SCOPE_READONLY ,
141
- & prov_include );
142
-
143
- prov_exclude = "shm,sockets,tcp,udp,rstream" ;
144
- mca_base_component_var_register (& mca_mtl_ofi_component .super .mtl_version ,
145
- "provider_exclude" ,
146
- "Comma-delimited list of OFI providers that are not considered for use (default: \"sockets,mxm\"; empty value means that all providers will be considered). Mutually exclusive with mtl_ofi_provider_include." ,
147
- MCA_BASE_VAR_TYPE_STRING , NULL , 0 , 0 ,
148
- OPAL_INFO_LVL_1 ,
149
- MCA_BASE_VAR_SCOPE_READONLY ,
150
- & prov_exclude );
151
-
152
134
ompi_mtl_ofi .ofi_progress_event_count = MTL_OFI_MAX_PROG_EVENT_COUNT ;
153
135
opal_asprintf (& desc , "Max number of events to read each call to OFI progress (default: %d events will be read per OFI progress call)" , ompi_mtl_ofi .ofi_progress_event_count );
154
136
mca_base_component_var_register (& mca_mtl_ofi_component .super .mtl_version ,
@@ -268,6 +250,8 @@ ompi_mtl_ofi_component_register(void)
268
250
MCA_BASE_VAR_SCOPE_READONLY ,
269
251
& ompi_mtl_ofi .num_ofi_contexts );
270
252
253
+ opal_common_ofi_register_mca_variables (& mca_mtl_ofi_component .super .mtl_version );
254
+
271
255
return OMPI_SUCCESS ;
272
256
}
273
257
@@ -312,6 +296,7 @@ ompi_mtl_ofi_component_query(mca_base_module_t **module, int *priority)
312
296
static int
313
297
ompi_mtl_ofi_component_close (void )
314
298
{
299
+ opal_common_ofi_mca_deregister ();
315
300
return OMPI_SUCCESS ;
316
301
}
317
302
@@ -350,7 +335,7 @@ select_ofi_provider(struct fi_info *providers,
350
335
if (NULL != include_list ) {
351
336
while ((NULL != prov ) &&
352
337
(!is_in_list (include_list , prov -> fabric_attr -> prov_name ))) {
353
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
338
+ opal_output_verbose (1 , opal_common_ofi . output ,
354
339
"%s:%d: mtl:ofi: \"%s\" not in include list\n" ,
355
340
__FILE__ , __LINE__ ,
356
341
prov -> fabric_attr -> prov_name );
@@ -359,15 +344,15 @@ select_ofi_provider(struct fi_info *providers,
359
344
} else if (NULL != exclude_list ) {
360
345
while ((NULL != prov ) &&
361
346
(is_in_list (exclude_list , prov -> fabric_attr -> prov_name ))) {
362
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
347
+ opal_output_verbose (1 , opal_common_ofi . output ,
363
348
"%s:%d: mtl:ofi: \"%s\" in exclude list\n" ,
364
349
__FILE__ , __LINE__ ,
365
350
prov -> fabric_attr -> prov_name );
366
351
prov = prov -> next ;
367
352
}
368
353
}
369
354
370
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
355
+ opal_output_verbose (1 , opal_common_ofi . output ,
371
356
"%s:%d: mtl:ofi:prov: %s\n" ,
372
357
__FILE__ , __LINE__ ,
373
358
(prov ? prov -> fabric_attr -> prov_name : "none" ));
@@ -397,6 +382,7 @@ select_ofi_provider(struct fi_info *providers,
397
382
return prov ;
398
383
}
399
384
385
+
400
386
/* Check if FI_REMOTE_CQ_DATA is supported, if so send the source rank there
401
387
* FI_DIRECTED_RECV is also needed so receives can discrimate the source
402
388
*/
@@ -482,7 +468,7 @@ ompi_mtl_ofi_define_tag_mode(int ofi_tag_mode, int *bits_for_cid) {
482
468
do { \
483
469
ompi_mtl_ofi.comm_to_context = calloc(arr_size, sizeof(int)); \
484
470
if (OPAL_UNLIKELY(!ompi_mtl_ofi.comm_to_context)) { \
485
- opal_output_verbose(1, ompi_mtl_base_framework.framework_output , \
471
+ opal_output_verbose(1, opal_common_ofi.output , \
486
472
"%s:%d: alloc of comm_to_context array failed: %s\n",\
487
473
__FILE__, __LINE__, strerror(errno)); \
488
474
return ret; \
@@ -494,7 +480,7 @@ ompi_mtl_ofi_define_tag_mode(int ofi_tag_mode, int *bits_for_cid) {
494
480
ompi_mtl_ofi.ofi_ctxt = (mca_mtl_ofi_context_t *) malloc(ompi_mtl_ofi.num_ofi_contexts * \
495
481
sizeof(mca_mtl_ofi_context_t)); \
496
482
if (OPAL_UNLIKELY(!ompi_mtl_ofi.ofi_ctxt)) { \
497
- opal_output_verbose(1, ompi_mtl_base_framework.framework_output , \
483
+ opal_output_verbose(1, opal_common_ofi.output , \
498
484
"%s:%d: alloc of ofi_ctxt array failed: %s\n", \
499
485
__FILE__, __LINE__, strerror(errno)); \
500
486
return ret; \
@@ -642,17 +628,19 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
642
628
int universe_size ;
643
629
char * univ_size_str ;
644
630
645
- opal_output_verbose (1 , ompi_mtl_base_framework .framework_output ,
631
+ opal_common_ofi_mca_register ();
632
+
633
+ opal_output_verbose (1 , opal_common_ofi .output ,
646
634
"%s:%d: mtl:ofi:provider_include = \"%s\"\n" ,
647
- __FILE__ , __LINE__ , prov_include );
648
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
635
+ __FILE__ , __LINE__ , * opal_common_ofi . prov_include );
636
+ opal_output_verbose (1 , opal_common_ofi . output ,
649
637
"%s:%d: mtl:ofi:provider_exclude = \"%s\"\n" ,
650
- __FILE__ , __LINE__ , prov_exclude );
638
+ __FILE__ , __LINE__ , * opal_common_ofi . prov_exclude );
651
639
652
- if (NULL != prov_include ) {
653
- include_list = opal_argv_split (prov_include , ',' );
654
- } else if (NULL != prov_exclude ) {
655
- exclude_list = opal_argv_split (prov_exclude , ',' );
640
+ if (NULL != * opal_common_ofi . prov_include ) {
641
+ include_list = opal_argv_split (* opal_common_ofi . prov_include , ',' );
642
+ } else if (NULL != * opal_common_ofi . prov_exclude ) {
643
+ exclude_list = opal_argv_split (* opal_common_ofi . prov_exclude , ',' );
656
644
}
657
645
658
646
/**
@@ -667,7 +655,7 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
667
655
*/
668
656
hints = fi_allocinfo ();
669
657
if (!hints ) {
670
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
658
+ opal_output_verbose (1 , opal_common_ofi . output ,
671
659
"%s:%d: Could not allocate fi_info\n" ,
672
660
__FILE__ , __LINE__ );
673
661
goto error ;
@@ -753,7 +741,7 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
753
741
754
742
ret = fi_getinfo (fi_version , NULL , NULL , 0ULL , hints_dup , & providers );
755
743
756
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
744
+ opal_output_verbose (1 , opal_common_ofi . output ,
757
745
"%s:%d: EFA specific fi_getinfo(): %s\n" ,
758
746
__FILE__ , __LINE__ , fi_strerror (- ret ));
759
747
@@ -790,7 +778,7 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
790
778
hints , /* In: Hints to filter providers */
791
779
& providers ); /* Out: List of matching providers */
792
780
793
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
781
+ opal_output_verbose (1 , opal_common_ofi . output ,
794
782
"%s:%d: fi_getinfo(): %s\n" ,
795
783
__FILE__ , __LINE__ , fi_strerror (- ret ));
796
784
@@ -811,7 +799,7 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
811
799
*/
812
800
prov = select_ofi_provider (providers , include_list , exclude_list );
813
801
if (!prov ) {
814
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
802
+ opal_output_verbose (1 , opal_common_ofi . output ,
815
803
"%s:%d: select_ofi_provider: no provider found\n" ,
816
804
__FILE__ , __LINE__ );
817
805
goto error ;
@@ -840,7 +828,7 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
840
828
/* Fallback to MTL_OFI_TAG_1 */
841
829
ompi_mtl_ofi_define_tag_mode (MTL_OFI_TAG_1 , & ofi_tag_bits_for_cid );
842
830
} else { /* MTL_OFI_TAG_FULL */
843
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
831
+ opal_output_verbose (1 , opal_common_ofi . output ,
844
832
"%s:%d: OFI provider %s does not support FI_REMOTE_CQ_DATA\n" ,
845
833
__FILE__ , __LINE__ , prov -> fabric_attr -> prov_name );
846
834
goto error ;
@@ -920,7 +908,7 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
920
908
ompi_process_info .nodename , __FILE__ , __LINE__ );
921
909
goto error ;
922
910
} else if (1 == sep_support_in_provider ) {
923
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
911
+ opal_output_verbose (1 , opal_common_ofi . output ,
924
912
"%s:%d: Scalable EP supported in %s provider. Enabling in MTL.\n" ,
925
913
__FILE__ , __LINE__ , prov -> fabric_attr -> prov_name );
926
914
}
@@ -1079,7 +1067,7 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
1079
1067
& ep_name ,
1080
1068
namelen );
1081
1069
if (OMPI_SUCCESS != ret ) {
1082
- opal_output_verbose (1 , ompi_mtl_base_framework . framework_output ,
1070
+ opal_output_verbose (1 , opal_common_ofi . output ,
1083
1071
"%s:%d: modex_send failed: %d\n" ,
1084
1072
__FILE__ , __LINE__ , ret );
1085
1073
goto error ;
0 commit comments