Skip to content

Commit d6ac41c

Browse files
committed
OFI: patch OFI MTL for GNI provider
Uncovered a problem using the GNI provider with the OFI MTL. See ofiwg/libfabric#6194. Related to #8001 Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
1 parent dfb0ae7 commit d6ac41c

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

ompi/mca/mtl/ofi/mtl_ofi_component.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -940,6 +940,17 @@ ompi_mtl_ofi_component_init(bool enable_progress_threads,
940940
goto error;
941941
}
942942

943+
/**
944+
* Unfortunately the attempt to implement FI_MR_SCALABLE in the GNI provider
945+
* doesn't work, at least not well. Since we're asking for the 1.5 libfabric
946+
* API now, we have to tell GNI we want to use Mr. Basic. Using FI_MR_BASIC
947+
* rather than FI_MR_VIRT_ADDR | FI_MR_ALLOCATED | FI_MR_PROV_KEY to stay
948+
* compatible with older libfabrics.
949+
*/
950+
if (!strncmp(prov->fabric_attr->prov_name,"gni",3)) {
951+
prov->domain_attr->mr_mode = FI_MR_BASIC;
952+
}
953+
943954
/**
944955
* Create the access domain, which is the physical or virtual network or
945956
* hardware port/collection of ports. Returns a domain object that can be

0 commit comments

Comments
 (0)