diff --git a/config/ompi_check_mvapi.m4 b/config/ompi_check_mvapi.m4 index d89494f7cc..e140149674 100644 --- a/config/ompi_check_mvapi.m4 +++ b/config/ompi_check_mvapi.m4 @@ -74,6 +74,10 @@ AC_DEFUN([OMPI_CHECK_MVAPI],[ [ompi_check_mvapi_happy="yes"], [ompi_check_mvapi_happy="no"])]) + AS_IF([test "$ompi_check_mvapi_happy" = "yes" -a "$enable_progress_threads" = "yes"], + [AC_MSG_WARN([MVAPI driver does not currently support progress threads. Disabling BTL.]) + ompi_check_mvapi_happy="no"]) + CPPFLAGS="$ompi_check_mvapi$1_save_CPPFLAGS"], [ompi_check_mvapi_happy="no"]) diff --git a/config/ompi_check_mx.m4 b/config/ompi_check_mx.m4 index de723c4215..477f2b3ce5 100644 --- a/config/ompi_check_mx.m4 +++ b/config/ompi_check_mx.m4 @@ -114,6 +114,10 @@ AC_DEFUN([OMPI_CHECK_MX],[ LDFLAGS="$ompi_check_mx_$1_save_LDFLAGS" LIBS="$ompi_check_mx_$1_save_LIBS" + AS_IF([test "$ompi_check_mx_happy" = "yes" -a "$enable_progress_threads" = "yes"], + [AC_MSG_WARN([MX driver does not currently support progress threads. Disabling BTL.]) + ompi_check_mx_happy="no"]) + AS_IF([test "$ompi_check_mx_happy" = "yes"], [$2], [AS_IF([test ! -z "$with_mx" -a "$with_mx" != "no"], diff --git a/config/ompi_check_openib.m4 b/config/ompi_check_openib.m4 index 6335154bd9..0398ecd4e1 100644 --- a/config/ompi_check_openib.m4 +++ b/config/ompi_check_openib.m4 @@ -131,6 +131,10 @@ AC_DEFUN([OMPI_CHECK_OPENIB],[ LIBS="$ompi_check_openib_$1_save_LIBS"], [ompi_check_openib_happy="no"]) + AS_IF([test "$ompi_check_openib_happy" = "yes" -a "$enable_progress_threads" = "yes"], + [AC_MSG_WARN([OpenIB driver does not currently support progress threads. Disabling BTL.]) + ompi_check_openib_happy="no"]) + AS_IF([test "$ompi_check_openib_happy" = "yes"], [$2], [AS_IF([test ! -z "$with_openib" -a "$with_openib" != "no"], diff --git a/ompi/mca/btl/mvapi/btl_mvapi_component.c b/ompi/mca/btl/mvapi/btl_mvapi_component.c index dc33f318bf..d40047e98d 100644 --- a/ompi/mca/btl/mvapi/btl_mvapi_component.c +++ b/ompi/mca/btl/mvapi/btl_mvapi_component.c @@ -353,6 +353,15 @@ mca_btl_base_module_t** mca_btl_mvapi_component_init(int *num_btl_modules, /* initialization */ *num_btl_modules = 0; + /* mvapi BTL does not currently support progress threads, so + disable the component if they were requested */ + if (enable_progress_threads) { + mca_btl_base_error_no_nics("MVAPI", "HCA"); + mca_btl_mvapi_component.ib_num_btls = 0; + mca_btl_mvapi_modex_send(); + return NULL; + } + /* Determine the number of hca's available on the host */ vapi_ret=EVAPI_list_hcas(0, &num_hcas, NULL); if( VAPI_EAGAIN != vapi_ret || 0 == num_hcas ) { diff --git a/ompi/mca/btl/mx/btl_mx_component.c b/ompi/mca/btl/mx/btl_mx_component.c index 262ff3dd28..e0ab22c390 100644 --- a/ompi/mca/btl/mx/btl_mx_component.c +++ b/ompi/mca/btl/mx/btl_mx_component.c @@ -230,6 +230,11 @@ mca_btl_base_module_t** mca_btl_mx_component_init(int *num_btl_modules, *num_btl_modules = 0; + if (enable_progress_threads) { + opal_output( 0, "mca_btl_mx_component_init: progress threads requested but not supported"); + return NULL; + } + /* set the MX error handle to always return. This function is the only MX function * allowed to be called before mx_init in order to make sure that if the MX is not * up and running the MX library does not exit the application. diff --git a/ompi/mca/btl/openib/btl_openib_component.c b/ompi/mca/btl/openib/btl_openib_component.c index 25a78bd32b..afef8ae65e 100644 --- a/ompi/mca/btl/openib/btl_openib_component.c +++ b/ompi/mca/btl/openib/btl_openib_component.c @@ -339,6 +339,15 @@ mca_btl_base_module_t** mca_btl_openib_component_init(int *num_btl_modules, *num_btl_modules = 0; num_devs = 0; + /* openib BTL does not currently support progress threads, so + disable the component if they were requested */ + if (enable_progress_threads) { + mca_btl_base_error_no_nics("OpenIB", "HCA"); + mca_btl_openib_component.ib_num_btls = 0; + mca_btl_openib_modex_send(); + return NULL; + } + seedv[0] = orte_process_info.my_name->vpid; seedv[1] = opal_sys_timer_get_cycles(); seedv[2] = opal_sys_timer_get_cycles();