Skip to content

Commit

Permalink
Merge pull request #1137 from davidozog/pr/cxi_quiet_rate
Browse files Browse the repository at this point in the history
OFI/CXI: add intermittent quiet for CXI workaround
  • Loading branch information
davidozog committed Jun 21, 2024
2 parents f3689bb + e596ffd commit ea5cf5e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/shmem_comm.h
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,14 @@ shmem_internal_atomicv(shmem_ctx_t ctx, void *target, const void *source,
shmem_internal_fetch_atomic(ctx, ((uint8_t *) target) + (i * type_size),
((uint8_t *) source) + (i * type_size), &tmp_fetch, type_size,
pe, op, datatype);
#ifdef SOS_OFI_CXI_QUIET_RATE
/* FIXME: This intermittent quiet should not be required: */
if (i % SOS_OFI_CXI_QUIET_RATE == 0) {
shmem_transport_put_quiet((shmem_transport_ctx_t *)ctx);
}
#endif
}
*completion += 1;
#else
if (shmem_shr_transport_use_atomic(ctx, target, len, pe, datatype)) {
shmem_shr_transport_atomicv(ctx, target, source, len, pe, op, datatype);
Expand Down
7 changes: 7 additions & 0 deletions src/transport_ofi.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@
#define ENABLE_TARGET_CNTR 0
#endif

#if DISABLE_NONFETCH_AMO
/* FIXME: The progress of back-to-back atomic ops over CXI is improved with an
* occasional quiet operation. This constant sets the number of atomic ops that
* occur between calls to quiet within shmem_internal_atomicv. */
#define SOS_OFI_CXI_QUIET_RATE 200
#endif

#if ENABLE_TARGET_CNTR
extern struct fid_cntr* shmem_transport_ofi_target_cntrfd;
#endif
Expand Down

0 comments on commit ea5cf5e

Please sign in to comment.