@@ -149,44 +149,46 @@ int mca_spml_ikrit_put_simple(void* dst_addr,
149
149
void * src_addr ,
150
150
int dst );
151
151
152
- static void mca_spml_ikrit_cache_mkeys (sshmem_mkey_t * , uint32_t seg , int remote_pe , int tr_id );
152
+ static void mca_spml_ikrit_cache_mkeys (shmem_ctx_t ctx , sshmem_mkey_t * ,
153
+ uint32_t seg , int remote_pe , int tr_id );
153
154
154
155
static mxm_mem_key_t * mca_spml_ikrit_get_mkey_slow (int pe , void * va , int ptl_id , void * * rva );
155
156
156
157
mca_spml_ikrit_t mca_spml_ikrit = {
157
- {
158
+ . super = {
158
159
/* Init mca_spml_base_module_t */
159
- mca_spml_ikrit_add_procs ,
160
- mca_spml_ikrit_del_procs ,
161
- mca_spml_ikrit_enable ,
162
- mca_spml_ikrit_register ,
163
- mca_spml_ikrit_deregister ,
164
- mca_spml_ikrit_oob_get_mkeys ,
165
- mca_spml_ikrit_ctx_create ,
166
- mca_spml_ikrit_ctx_destroy ,
167
- mca_spml_ikrit_put ,
168
- mca_spml_ikrit_put_nb ,
169
- mca_spml_ikrit_get ,
170
- mca_spml_ikrit_get_nb ,
171
- mca_spml_ikrit_recv ,
172
- mca_spml_ikrit_send ,
173
- mca_spml_base_wait ,
174
- mca_spml_base_wait_nb ,
175
- mca_spml_base_test ,
176
- mca_spml_ikrit_fence , /* fence is implemented as quiet */
177
- mca_spml_ikrit_fence ,
178
- mca_spml_ikrit_cache_mkeys ,
179
- mca_spml_base_rmkey_free ,
180
- mca_spml_base_rmkey_ptr ,
181
- mca_spml_base_memuse_hook ,
182
- mca_spml_base_put_all_nb ,
183
-
184
- (void * )& mca_spml_ikrit
160
+ . spml_add_procs = mca_spml_ikrit_add_procs ,
161
+ . spml_del_procs = mca_spml_ikrit_del_procs ,
162
+ . spml_enable = mca_spml_ikrit_enable ,
163
+ . spml_register = mca_spml_ikrit_register ,
164
+ . spml_deregister = mca_spml_ikrit_deregister ,
165
+ . spml_oob_get_mkeys = mca_spml_ikrit_oob_get_mkeys ,
166
+ . spml_ctx_create = mca_spml_ikrit_ctx_create ,
167
+ . spml_ctx_destroy = mca_spml_ikrit_ctx_destroy ,
168
+ . spml_put = mca_spml_ikrit_put ,
169
+ . spml_put_nb = mca_spml_ikrit_put_nb ,
170
+ . spml_get = mca_spml_ikrit_get ,
171
+ . spml_get_nb = mca_spml_ikrit_get_nb ,
172
+ . spml_recv = mca_spml_ikrit_recv ,
173
+ . spml_send = mca_spml_ikrit_send ,
174
+ . spml_wait = mca_spml_base_wait ,
175
+ . spml_wait_nb = mca_spml_base_wait_nb ,
176
+ . spml_test = mca_spml_base_test ,
177
+ . spml_fence = mca_spml_ikrit_fence , /* fence is implemented as quiet */
178
+ . spml_quiet = mca_spml_ikrit_fence ,
179
+ . spml_rmkey_unpack = mca_spml_ikrit_cache_mkeys ,
180
+ . spml_rmkey_free = mca_spml_base_rmkey_free ,
181
+ . spml_rmkey_ptr = mca_spml_base_rmkey_ptr ,
182
+ . spml_memuse_hook = mca_spml_base_memuse_hook ,
183
+ . spml_put_all_nb = mca_spml_base_put_all_nb ,
184
+
185
+ . self = (void * )& mca_spml_ikrit
185
186
},
186
- mca_spml_ikrit_get_mkey_slow
187
+ . get_mkey_slow = mca_spml_ikrit_get_mkey_slow
187
188
};
188
189
189
- static void mca_spml_ikrit_cache_mkeys (sshmem_mkey_t * mkey , uint32_t seg , int dst_pe , int tr_id )
190
+ static void mca_spml_ikrit_cache_mkeys (shmem_ctx_t ctx , sshmem_mkey_t * mkey ,
191
+ uint32_t seg , int dst_pe , int tr_id )
190
192
{
191
193
mxm_peer_t * peer ;
192
194
@@ -210,7 +212,7 @@ mxm_mem_key_t *mca_spml_ikrit_get_mkey_slow(int pe, void *va, int ptl_id, void *
210
212
sshmem_mkey_t * mkey ;
211
213
212
214
retry :
213
- mkey = mca_memheap_base_get_cached_mkey (pe , va , ptl_id , rva );
215
+ mkey = mca_memheap_base_get_cached_mkey (oshmem_ctx_default , pe , va , ptl_id , rva );
214
216
if (NULL == mkey ) {
215
217
SPML_ERROR ("pe=%d: %p is not address of shared variable" , pe , va );
216
218
oshmem_shmem_abort (-1 );
@@ -436,9 +438,9 @@ int mca_spml_ikrit_add_procs(ompi_proc_t** procs, size_t nprocs)
436
438
}
437
439
438
440
sshmem_mkey_t * mca_spml_ikrit_register (void * addr ,
439
- size_t size ,
440
- uint64_t shmid ,
441
- int * count )
441
+ size_t size ,
442
+ uint64_t shmid ,
443
+ int * count )
442
444
{
443
445
int i ;
444
446
sshmem_mkey_t * mkeys ;
@@ -505,7 +507,8 @@ sshmem_mkey_t *mca_spml_ikrit_register(void* addr,
505
507
my_rank , i , addr , (unsigned long long )size ,
506
508
mca_spml_base_mkey2str (& mkeys [i ]));
507
509
508
- mca_spml_ikrit_cache_mkeys (& mkeys [i ], memheap_find_segnum (addr ), my_rank , i );
510
+ mca_spml_ikrit_cache_mkeys (oshmem_ctx_default , & mkeys [i ],
511
+ memheap_find_segnum (addr ), my_rank , i );
509
512
}
510
513
* count = MXM_PTL_LAST ;
511
514
@@ -549,7 +552,8 @@ int mca_spml_ikrit_deregister(sshmem_mkey_t *mkeys)
549
552
550
553
}
551
554
552
- int mca_spml_ikrit_oob_get_mkeys (int pe , uint32_t seg , sshmem_mkey_t * mkeys )
555
+ int mca_spml_ikrit_oob_get_mkeys (shmem_ctx_t ctx , int pe , uint32_t seg ,
556
+ sshmem_mkey_t * mkeys )
553
557
{
554
558
int ptl ;
555
559
@@ -568,7 +572,7 @@ int mca_spml_ikrit_oob_get_mkeys(int pe, uint32_t seg, sshmem_mkey_t *mkeys)
568
572
mkeys [ptl ].len = 0 ;
569
573
mkeys [ptl ].va_base = mca_memheap_seg2base_va (seg );
570
574
mkeys [ptl ].u .key = MAP_SEGMENT_SHM_INVALID ;
571
- mca_spml_ikrit_cache_mkeys (& mkeys [ptl ], seg , pe , ptl );
575
+ mca_spml_ikrit_cache_mkeys (ctx , & mkeys [ptl ], seg , pe , ptl );
572
576
return OSHMEM_SUCCESS ;
573
577
}
574
578
0 commit comments