diff --git a/ompi/mca/btl/openib/btl_openib.h b/ompi/mca/btl/openib/btl_openib.h index cba5dc3d21..68061c30f4 100644 --- a/ompi/mca/btl/openib/btl_openib.h +++ b/ompi/mca/btl/openib/btl_openib.h @@ -238,6 +238,7 @@ struct mca_btl_openib_component_t { #endif int rdma_qp; int credits_qp; /* qp used for software flow control */ + bool cpc_explicitly_defined; /**< free list of frags only; used for pining user memory */ ompi_free_list_t send_user_free; /**< free list of frags only; used for pining user memory */ diff --git a/ompi/mca/btl/openib/btl_openib_component.c b/ompi/mca/btl/openib/btl_openib_component.c index e50afdb0d9..bbdc7db3b4 100644 --- a/ompi/mca/btl/openib/btl_openib_component.c +++ b/ompi/mca/btl/openib/btl_openib_component.c @@ -135,6 +135,7 @@ int btl_openib_component_open(void) mca_btl_openib_component.openib_btls = NULL; OBJ_CONSTRUCT(&mca_btl_openib_component.hcas, opal_pointer_array_t); mca_btl_openib_component.hcas_count = 0; + mca_btl_openib_component.cpc_explicitly_defined = false; /* initialize objects */ OBJ_CONSTRUCT(&mca_btl_openib_component.ib_procs, opal_list_t); diff --git a/ompi/mca/btl/openib/connect/btl_openib_connect_base.c b/ompi/mca/btl/openib/connect/btl_openib_connect_base.c index 95573aac0b..1e58a7f21c 100644 --- a/ompi/mca/btl/openib/connect/btl_openib_connect_base.c +++ b/ompi/mca/btl/openib/connect/btl_openib_connect_base.c @@ -106,6 +106,7 @@ int ompi_btl_openib_connect_base_register(void) /* If we have an "include" list, then find all those CPCs and put them in available[] */ if (NULL != cpc_include) { + mca_btl_openib_component.cpc_explicitly_defined = true; temp = opal_argv_split(cpc_include, ','); for (save = j = 0; NULL != temp[j]; ++j) { for (i = 0; NULL != all[i]; ++i) { @@ -133,6 +134,7 @@ int ompi_btl_openib_connect_base_register(void) /* Otherwise, if we have an "exclude" list, take all the CPCs that are not in that list and put them in available[] */ else if (NULL != cpc_exclude) { + mca_btl_openib_component.cpc_explicitly_defined = true; temp = opal_argv_split(cpc_exclude, ','); /* First: error check -- ensure that all the names are valid */ for (j = 0; NULL != temp[j]; ++j) { diff --git a/ompi/mca/btl/openib/connect/btl_openib_connect_ibcm.c b/ompi/mca/btl/openib/connect/btl_openib_connect_ibcm.c index 319457ccab..3092792454 100644 --- a/ompi/mca/btl/openib/connect/btl_openib_connect_ibcm.c +++ b/ompi/mca/btl/openib/connect/btl_openib_connect_ibcm.c @@ -720,7 +720,9 @@ static int ibcm_component_query(mca_btl_openib_module_t *btl, /* We can't open the device for some reason (can't read, can't write, doesn't exist, ...etc.); IBCM is not setup on this node. */ - BTL_ERROR(("failed to open IB CM device: %s", filename)); + if (mca_btl_openib_component.cpc_explicitly_defined) { + BTL_ERROR(("failed to open IB CM device: %s", filename)); + } free(filename); rc = OMPI_ERR_NOT_SUPPORTED; goto error;