@@ -151,44 +151,46 @@ int mca_spml_ikrit_put_simple(void* dst_addr,
151151 void * src_addr ,
152152 int dst );
153153
154- static void mca_spml_ikrit_cache_mkeys (sshmem_mkey_t * , uint32_t seg , int remote_pe , int tr_id );
154+ static void mca_spml_ikrit_cache_mkeys (shmem_ctx_t ctx , sshmem_mkey_t * ,
155+ uint32_t seg , int remote_pe , int tr_id );
155156
156157static mxm_mem_key_t * mca_spml_ikrit_get_mkey_slow (int pe , void * va , int ptl_id , void * * rva );
157158
158159mca_spml_ikrit_t mca_spml_ikrit = {
159- {
160+ . super = {
160161 /* Init mca_spml_base_module_t */
161- mca_spml_ikrit_add_procs ,
162- mca_spml_ikrit_del_procs ,
163- mca_spml_ikrit_enable ,
164- mca_spml_ikrit_register ,
165- mca_spml_ikrit_deregister ,
166- mca_spml_ikrit_oob_get_mkeys ,
167- mca_spml_ikrit_ctx_create ,
168- mca_spml_ikrit_ctx_destroy ,
169- mca_spml_ikrit_put ,
170- mca_spml_ikrit_put_nb ,
171- mca_spml_ikrit_get ,
172- mca_spml_ikrit_get_nb ,
173- mca_spml_ikrit_recv ,
174- mca_spml_ikrit_send ,
175- mca_spml_base_wait ,
176- mca_spml_base_wait_nb ,
177- mca_spml_base_test ,
178- mca_spml_ikrit_fence , /* fence is implemented as quiet */
179- mca_spml_ikrit_fence ,
180- mca_spml_ikrit_cache_mkeys ,
181- mca_spml_base_rmkey_free ,
182- mca_spml_base_rmkey_ptr ,
183- mca_spml_base_memuse_hook ,
184- mca_spml_base_put_all_nb ,
185-
186- (void * )& mca_spml_ikrit
162+ . spml_add_procs = mca_spml_ikrit_add_procs ,
163+ . spml_del_procs = mca_spml_ikrit_del_procs ,
164+ . spml_enable = mca_spml_ikrit_enable ,
165+ . spml_register = mca_spml_ikrit_register ,
166+ . spml_deregister = mca_spml_ikrit_deregister ,
167+ . spml_oob_get_mkeys = mca_spml_ikrit_oob_get_mkeys ,
168+ . spml_ctx_create = mca_spml_ikrit_ctx_create ,
169+ . spml_ctx_destroy = mca_spml_ikrit_ctx_destroy ,
170+ . spml_put = mca_spml_ikrit_put ,
171+ . spml_put_nb = mca_spml_ikrit_put_nb ,
172+ . spml_get = mca_spml_ikrit_get ,
173+ . spml_get_nb = mca_spml_ikrit_get_nb ,
174+ . spml_recv = mca_spml_ikrit_recv ,
175+ . spml_send = mca_spml_ikrit_send ,
176+ . spml_wait = mca_spml_base_wait ,
177+ . spml_wait_nb = mca_spml_base_wait_nb ,
178+ . spml_test = mca_spml_base_test ,
179+ . spml_fence = mca_spml_ikrit_fence , /* fence is implemented as quiet */
180+ . spml_quiet = mca_spml_ikrit_fence ,
181+ . spml_rmkey_unpack = mca_spml_ikrit_cache_mkeys ,
182+ . spml_rmkey_free = mca_spml_base_rmkey_free ,
183+ . spml_rmkey_ptr = mca_spml_base_rmkey_ptr ,
184+ . spml_memuse_hook = mca_spml_base_memuse_hook ,
185+ . spml_put_all_nb = mca_spml_base_put_all_nb ,
186+
187+ . self = (void * )& mca_spml_ikrit
187188 },
188- mca_spml_ikrit_get_mkey_slow
189+ . get_mkey_slow = mca_spml_ikrit_get_mkey_slow
189190};
190191
191- static void mca_spml_ikrit_cache_mkeys (sshmem_mkey_t * mkey , uint32_t seg , int dst_pe , int tr_id )
192+ static void mca_spml_ikrit_cache_mkeys (shmem_ctx_t ctx , sshmem_mkey_t * mkey ,
193+ uint32_t seg , int dst_pe , int tr_id )
192194{
193195 mxm_peer_t * peer ;
194196
@@ -212,7 +214,7 @@ mxm_mem_key_t *mca_spml_ikrit_get_mkey_slow(int pe, void *va, int ptl_id, void *
212214 sshmem_mkey_t * mkey ;
213215
214216retry :
215- mkey = mca_memheap_base_get_cached_mkey (pe , va , ptl_id , rva );
217+ mkey = mca_memheap_base_get_cached_mkey (oshmem_ctx_default , pe , va , ptl_id , rva );
216218 if (NULL == mkey ) {
217219 SPML_ERROR ("pe=%d: %p is not address of shared variable" , pe , va );
218220 oshmem_shmem_abort (-1 );
@@ -438,9 +440,9 @@ int mca_spml_ikrit_add_procs(ompi_proc_t** procs, size_t nprocs)
438440}
439441
440442sshmem_mkey_t * mca_spml_ikrit_register (void * addr ,
441- size_t size ,
442- uint64_t shmid ,
443- int * count )
443+ size_t size ,
444+ uint64_t shmid ,
445+ int * count )
444446{
445447 int i ;
446448 sshmem_mkey_t * mkeys ;
@@ -507,7 +509,8 @@ sshmem_mkey_t *mca_spml_ikrit_register(void* addr,
507509 my_rank , i , addr , (unsigned long long )size ,
508510 mca_spml_base_mkey2str (& mkeys [i ]));
509511
510- mca_spml_ikrit_cache_mkeys (& mkeys [i ], memheap_find_segnum (addr ), my_rank , i );
512+ mca_spml_ikrit_cache_mkeys (oshmem_ctx_default , & mkeys [i ],
513+ memheap_find_segnum (addr ), my_rank , i );
511514 }
512515 * count = MXM_PTL_LAST ;
513516
@@ -551,7 +554,8 @@ int mca_spml_ikrit_deregister(sshmem_mkey_t *mkeys)
551554
552555}
553556
554- int mca_spml_ikrit_oob_get_mkeys (int pe , uint32_t seg , sshmem_mkey_t * mkeys )
557+ int mca_spml_ikrit_oob_get_mkeys (shmem_ctx_t ctx , int pe , uint32_t seg ,
558+ sshmem_mkey_t * mkeys )
555559{
556560 int ptl ;
557561
@@ -570,7 +574,7 @@ int mca_spml_ikrit_oob_get_mkeys(int pe, uint32_t seg, sshmem_mkey_t *mkeys)
570574 mkeys [ptl ].len = 0 ;
571575 mkeys [ptl ].va_base = mca_memheap_seg2base_va (seg );
572576 mkeys [ptl ].u .key = MAP_SEGMENT_SHM_INVALID ;
573- mca_spml_ikrit_cache_mkeys (& mkeys [ptl ], seg , pe , ptl );
577+ mca_spml_ikrit_cache_mkeys (ctx , & mkeys [ptl ], seg , pe , ptl );
574578 return OSHMEM_SUCCESS ;
575579 }
576580
0 commit comments