Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-blocking PUT in CHPL_COMM=ofi #25977

Draft
wants to merge 16 commits into
base: main
Choose a base branch
from
Draft
3 changes: 3 additions & 0 deletions runtime/include/chpl-comm.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@ void chpl_comm_wait_nb_some(chpl_comm_nb_handle_t* h, size_t nhandles);
// detected.
int chpl_comm_try_nb_some(chpl_comm_nb_handle_t* h, size_t nhandles);

// Free a handle returned by chpl_comm_*_nb.
void chpl_comm_free_nb_handle(chpl_comm_nb_handle_t h);

// Returns whether or not the passed wide address is known to be in
// a communicable memory region and known to be readable. That is,
// GET to that address should succeed without an access violation
Expand Down
1 change: 1 addition & 0 deletions runtime/include/chpl-mem-desc.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ extern "C" {
m(COMM_PER_LOC_INFO, "comm layer per-locale information", false), \
m(COMM_PRV_OBJ_ARRAY, "comm layer private objects array", false), \
m(COMM_PRV_BCAST_DATA, "comm layer private broadcast data", false), \
m(COMM_NB_HANDLE, "comm layer non-blocking handle", false), \
m(MEM_HEAP_SPACE, "mem layer heap expansion space", false), \
m(GLOM_STRINGS_DATA, "glom strings data", true ), \
m(STRING_LITERALS_BUF, "string literals buffer", true ), \
Expand Down
1 change: 1 addition & 0 deletions runtime/src/chpl-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -1967,6 +1967,7 @@ chpl_bool do_wait_for(struct rdcache_s* cache, cache_seqn_t sn)
// Whether we waited above or not, if the first entry's event
// is already complete, then remove it from the queue.
if (chpl_comm_test_nb_complete(cache->pending[index])) {
chpl_comm_free_nb_handle(cache->pending[index]);
fifo_circleb_pop(&cache->pending_first_entry,
&cache->pending_last_entry,
cache->pending_len);
Expand Down
Loading
Loading