Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enable chpl_comm_regMemHeapTouch() for more configurations (#25787)
### Summary: This pull request addresses something which I noticed while trying to understand what code actually runs in Chapel's "no-op" test. As explained in the commit message (reproduced below), I observed that the hook to touch heap memory between allocation and static registration with the NIC was only ever enabled for `FAST` segment mode, even though `LARGE` is identical to `FAST` in all registration-based conduits other than ibv. This single-commit pull request resolves this. This is anticipated to have minimal impact on users, since my understanding of Chapel's documentation is that it does not recommend any of aries, ofi or ucx-conduits (except where ucx is mentioned as an alternative to ibv in "rare cases"). I have taken an approach that splits the preprocessor logic into two groups of conduits, to produce what I found to be the most intelligible option. If there is a desire to avoid replicating the assignment to `gasnet_client_attach_hook`, or to group by segment instead of conduit, let me know and I will revise as requested. ### Commit(s) - Enable chpl_comm_regMemHeapTouch() for more configurations. This commit updates the preprocessor logic which enables use of `chpl_comm_regMemHeapTouch()` to more accurately reflect the set of "configurations that register a fixed heap at startup". Specifically, for registration-based conduits other than ibv, the code for LARGE and FAST segment modes are identical. So, LARGE should be excluded *only* for ibv-conduit, not for aries, ofi or ucx.
- Loading branch information