[Chapel Merge] Use hybrid MR mode with the cxi provider

Branch: refs/heads/main
Revision: d9079b0
Author: jhh67
Link: Use hybrid MR mode with the cxi provider by jhh67 · Pull Request #19148 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #19148 from jhh67/T2957

Use hybrid MR mode with the cxi provider

The libfabric cxi provider for Cassini-based networks now supports the so-called "hybrid" local memory registration mode. For functions that accept a local MR descriptor, this allows the client to pass the non-NULL MR descriptor (pointer) if the local address is already registered, or NULL to indicate that the local memory is not registered and the provider should use its internal MR cache. (Absent this hybrid mode the provider always uses its internal MR cache, which is a source of contention for multi-threaded clients such as Chapel and in certain cases SHMEM.)

[Reviewed by @gbtitus and @ronawho]

Modified Files:
M runtime/src/comm/ofi/comm-ofi.c

Compare: https://github.com/chapel-lang/chapel/compare/5aa4bcfd3956...d9079b025ba6