Skip to content

Commit f3832c1

Browse files
authored
Merge pull request #7973 from wckzhang/btlexclude
btl/ofi: Disable EFA provider in versions earlier than libfabric 1.12.0
2 parents b6a06ca + 41acfee commit f3832c1

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

opal/mca/btl/ofi/btl_ofi_component.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,25 @@ static int validate_info(struct fi_info *info, uint64_t required_caps,
7474

7575
BTL_VERBOSE(("validating device: %s", info->domain_attr->name));
7676

77+
/* EFA does not fulfill FI_DELIVERY_COMPLETE requirements in prior libfabric
78+
* versions. The prov version is set as:
79+
* FI_VERSION(FI_MAJOR_VERSION * 100 + FI_MINOR_VERSION, FI_REVISION_VERSION * 10)
80+
* Thus, FI_VERSION(112,0) corresponds to libfabric 1.12.0
81+
*/
82+
if (!strncasecmp(info->fabric_attr->prov_name, "efa", 3)
83+
&& FI_VERSION_LT(info->fabric_attr->prov_version, FI_VERSION(112,0))) {
84+
BTL_VERBOSE(("unsupported libfabric efa version"));
85+
return OPAL_ERROR;
86+
}
87+
88+
/* ofi_rxm does not fulfill FI_DELIVERY_COMPLETE requirements. Thus we
89+
* exclude it if it's detected.
90+
*/
91+
if (strstr(info->fabric_attr->prov_name, "ofi_rxm")) {
92+
BTL_VERBOSE(("ofi_rxm does not support FI_DELIVERY_COMPLETE"));
93+
return OPAL_ERROR;
94+
}
95+
7796
/* we need exactly all the required bits */
7897
if ((info->caps & required_caps) != required_caps) {
7998
BTL_VERBOSE(("unsupported caps"));

0 commit comments

Comments
 (0)