@@ -149,44 +149,46 @@ int mca_spml_ikrit_put_simple(void* dst_addr,
149149 void * src_addr ,
150150 int dst );
151151
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 );
153154
154155static mxm_mem_key_t * mca_spml_ikrit_get_mkey_slow (int pe , void * va , int ptl_id , void * * rva );
155156
156157mca_spml_ikrit_t mca_spml_ikrit = {
157- {
158+ . super = {
158159 /* 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
185186 },
186- mca_spml_ikrit_get_mkey_slow
187+ . get_mkey_slow = mca_spml_ikrit_get_mkey_slow
187188};
188189
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 )
190192{
191193 mxm_peer_t * peer ;
192194
@@ -210,7 +212,7 @@ mxm_mem_key_t *mca_spml_ikrit_get_mkey_slow(int pe, void *va, int ptl_id, void *
210212 sshmem_mkey_t * mkey ;
211213
212214retry :
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 );
214216 if (NULL == mkey ) {
215217 SPML_ERROR ("pe=%d: %p is not address of shared variable" , pe , va );
216218 oshmem_shmem_abort (-1 );
@@ -436,9 +438,9 @@ int mca_spml_ikrit_add_procs(ompi_proc_t** procs, size_t nprocs)
436438}
437439
438440sshmem_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 )
442444{
443445 int i ;
444446 sshmem_mkey_t * mkeys ;
@@ -505,7 +507,8 @@ sshmem_mkey_t *mca_spml_ikrit_register(void* addr,
505507 my_rank , i , addr , (unsigned long long )size ,
506508 mca_spml_base_mkey2str (& mkeys [i ]));
507509
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 );
509512 }
510513 * count = MXM_PTL_LAST ;
511514
@@ -549,7 +552,8 @@ int mca_spml_ikrit_deregister(sshmem_mkey_t *mkeys)
549552
550553}
551554
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 )
553557{
554558 int ptl ;
555559
@@ -568,7 +572,7 @@ int mca_spml_ikrit_oob_get_mkeys(int pe, uint32_t seg, sshmem_mkey_t *mkeys)
568572 mkeys [ptl ].len = 0 ;
569573 mkeys [ptl ].va_base = mca_memheap_seg2base_va (seg );
570574 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 );
572576 return OSHMEM_SUCCESS ;
573577 }
574578
0 commit comments