From 046f03fbaea176e6cd2a8939c0769c3b6262908c Mon Sep 17 00:00:00 2001 From: David Ozog Date: Fri, 21 Jun 2024 06:44:28 -0700 Subject: [PATCH] ofi/cxi: add intermittent quiet for CXI workaround --- src/shmem_comm.h | 7 +++++++ src/transport_ofi.h | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/shmem_comm.h b/src/shmem_comm.h index a08ede1d..15f36b33 100644 --- a/src/shmem_comm.h +++ b/src/shmem_comm.h @@ -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); diff --git a/src/transport_ofi.h b/src/transport_ofi.h index 616526bb..c459b9d5 100644 --- a/src/transport_ofi.h +++ b/src/transport_ofi.h @@ -40,6 +40,10 @@ #define ENABLE_TARGET_CNTR 0 #endif +#if DISABLE_NONFETCH_AMO +#define SOS_OFI_CXI_QUIET_RATE 200 +#endif + #if ENABLE_TARGET_CNTR extern struct fid_cntr* shmem_transport_ofi_target_cntrfd; #endif