Skip to content

Commit 948e3e9

Browse files
authored
Merge pull request #9058 from sb17v/topic/v5.x/oshmem/mem_footprint_fix_v2
oshmem: Reduce the service memory footprint
2 parents a2d2f67 + 90bf935 commit 948e3e9

File tree

11 files changed

+289
-103
lines changed

11 files changed

+289
-103
lines changed

oshmem/mca/atomic/ucx/atomic_ucx_cswap.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ int mca_atomic_ucx_cswap(shmem_ctx_t ctx,
4848
assert(NULL != prev);
4949

5050
*prev = value;
51-
ucx_mkey = mca_spml_ucx_get_mkey(ctx, pe, target, (void *)&rva, mca_spml_self);
51+
ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, pe, target, (void *)&rva, mca_spml_self);
52+
assert(NULL != ucx_mkey);
5253
#if HAVE_DECL_UCP_ATOMIC_OP_NBX
5354
status_ptr = ucp_atomic_op_nbx(ucx_ctx->ucp_peers[pe].ucp_conn,
5455
UCP_ATOMIC_OP_CSWAP, &cond, 1, rva,

oshmem/mca/atomic/ucx/atomic_ucx_module.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ int mca_atomic_ucx_op(shmem_ctx_t ctx,
6565

6666
assert((8 == size) || (4 == size));
6767

68-
ucx_mkey = mca_spml_ucx_get_mkey(ctx, pe, target, (void *)&rva, mca_spml_self);
69-
68+
ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, pe, target, (void *)&rva, mca_spml_self);
69+
assert(NULL != ucx_mkey);
7070
#if HAVE_DECL_UCP_ATOMIC_OP_NBX
7171
status_ptr = ucp_atomic_op_nbx(ucx_ctx->ucp_peers[pe].ucp_conn,
7272
op, &value, 1, rva, ucx_mkey->rkey,
@@ -115,7 +115,8 @@ int mca_atomic_ucx_fop(shmem_ctx_t ctx,
115115

116116
assert((8 == size) || (4 == size));
117117

118-
ucx_mkey = mca_spml_ucx_get_mkey(ctx, pe, target, (void *)&rva, mca_spml_self);
118+
ucx_mkey = mca_spml_ucx_ctx_mkey_by_va(ctx, pe, target, (void *)&rva, mca_spml_self);
119+
assert(NULL != ucx_mkey);
119120
#if HAVE_DECL_UCP_ATOMIC_OP_NBX
120121
status_ptr = ucp_atomic_op_nbx(ucx_ctx->ucp_peers[pe].ucp_conn, op, &value, 1,
121122
rva, ucx_mkey->rkey, &param);

oshmem/mca/memheap/base/base.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -200,22 +200,6 @@ static inline void *map_segment_va2rva(mkey_segment_t *seg, void *va)
200200
return memheap_va2rva(va, seg->super.va_base, seg->rva_base);
201201
}
202202

203-
static inline map_base_segment_t *map_segment_find_va(map_base_segment_t *segs,
204-
size_t elem_size, void *va)
205-
{
206-
map_base_segment_t *rseg;
207-
int i;
208-
209-
for (i = 0; i < MCA_MEMHEAP_MAX_SEGMENTS; i++) {
210-
rseg = (map_base_segment_t *)((char *)segs + elem_size * i);
211-
if (OPAL_LIKELY(map_segment_is_va_in(rseg, va))) {
212-
return rseg;
213-
}
214-
}
215-
216-
return NULL;
217-
}
218-
219203
void mkey_segment_init(mkey_segment_t *seg, sshmem_mkey_t *mkey, uint32_t segno);
220204

221205
static inline map_segment_t *memheap_find_va(void* va)

oshmem/mca/memheap/base/memheap_base_mkey.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -775,7 +775,6 @@ void mkey_segment_init(mkey_segment_t *seg, sshmem_mkey_t *mkey, uint32_t segno)
775775

776776
s = memheap_find_seg(segno);
777777
assert(NULL != s);
778-
779778
seg->super.va_base = s->super.va_base;
780779
seg->super.va_end = s->super.va_end;
781780
seg->rva_base = mkey->va_base;

oshmem/mca/memheap/base/memheap_base_register.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ static int _dereg_segment(map_segment_t *s)
8686
continue;
8787
if (s->mkeys_cache[j]) {
8888
if (s->mkeys_cache[j]->len) {
89-
MCA_SPML_CALL(rmkey_free(s->mkeys_cache[j]));
89+
MCA_SPML_CALL(rmkey_free(s->mkeys_cache[j], j));
9090
free(s->mkeys_cache[j]->u.data);
9191
s->mkeys_cache[j]->len = 0;
9292
}

oshmem/mca/spml/base/base.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ OSHMEM_DECLSPEC int mca_spml_base_oob_get_mkeys(shmem_ctx_t ctx,
7878
sshmem_mkey_t *mkeys);
7979

8080
OSHMEM_DECLSPEC void mca_spml_base_rmkey_unpack(shmem_ctx_t ctx, sshmem_mkey_t *mkey, uint32_t seg, int pe, int tr_id);
81-
OSHMEM_DECLSPEC void mca_spml_base_rmkey_free(sshmem_mkey_t *mkey);
81+
OSHMEM_DECLSPEC void mca_spml_base_rmkey_free(sshmem_mkey_t *mkey, int pe);
8282
OSHMEM_DECLSPEC void *mca_spml_base_rmkey_ptr(const void *dst_addr, sshmem_mkey_t *mkey, int pe);
8383

8484
OSHMEM_DECLSPEC int mca_spml_base_put_nb(void *dst_addr,

oshmem/mca/spml/base/spml_base.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ void mca_spml_base_rmkey_unpack(shmem_ctx_t ctx, sshmem_mkey_t *mkey, uint32_t s
256256
{
257257
}
258258

259-
void mca_spml_base_rmkey_free(sshmem_mkey_t *mkey)
259+
void mca_spml_base_rmkey_free(sshmem_mkey_t *mkey, int pe)
260260
{
261261
}
262262

oshmem/mca/spml/spml.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ typedef void * (*mca_spml_base_module_mkey_ptr_fn_t)(const void *dst_addr, sshme
150150
*
151151
* @param mkey remote mkey
152152
*/
153-
typedef void (*mca_spml_base_module_mkey_free_fn_t)(sshmem_mkey_t *);
153+
typedef void (*mca_spml_base_module_mkey_free_fn_t)(sshmem_mkey_t *, int pe);
154154

155155
/**
156156
* Register (Pinn) a buffer of 'size' bits starting in address addr

0 commit comments

Comments
 (0)