1
1

Implement Jeff`s feedback: Anonymous unions handling

Refs: 3763

This commit was SVN r29771.
Этот коммит содержится в:
Mike Dubman 2013-11-29 14:14:46 +00:00
родитель 2faef6bc2d
Коммит bc25091b61
4 изменённых файлов: 40 добавлений и 40 удалений

Просмотреть файл

@ -137,7 +137,7 @@ static int do_mkey_req(opal_buffer_t *msg, int pe, int seg)
return OSHMEM_ERROR; return OSHMEM_ERROR;
} }
opal_dss.pack(msg, &tr_id, 1, OPAL_UINT32); opal_dss.pack(msg, &tr_id, 1, OPAL_UINT32);
opal_dss.pack(msg, &mkey->key, 1, OPAL_UINT64); opal_dss.pack(msg, &mkey->handle.key, 1, OPAL_UINT64);
opal_dss.pack(msg, &mkey->va_base, 1, OPAL_UINT64); opal_dss.pack(msg, &mkey->va_base, 1, OPAL_UINT64);
if (NULL != MCA_SPML_CALL(get_remote_context_size)) { if (NULL != MCA_SPML_CALL(get_remote_context_size)) {
@ -156,7 +156,7 @@ static int do_mkey_req(opal_buffer_t *msg, int pe, int seg)
MEMHEAP_VERBOSE(5, MEMHEAP_VERBOSE(5,
"seg#%d tr_id: %d key %llx base_va %p", "seg#%d tr_id: %d key %llx base_va %p",
seg, tr_id, (unsigned long long)mkey->key, mkey->va_base); seg, tr_id, (unsigned long long)mkey->handle.key, mkey->va_base);
} }
return OSHMEM_SUCCESS; return OSHMEM_SUCCESS;
} }
@ -169,20 +169,20 @@ static void memheap_attach_segment(mca_spml_mkey_t *mkey, int tr_id)
* - va_base is set as 0; * - va_base is set as 0;
*/ */
if (!mkey->va_base if (!mkey->va_base
&& ((int) MEMHEAP_SHM_GET_ID(mkey->key) != MEMHEAP_SHM_INVALID)) { && ((int) MEMHEAP_SHM_GET_ID(mkey->handle.key) != MEMHEAP_SHM_INVALID)) {
MEMHEAP_VERBOSE(5, MEMHEAP_VERBOSE(5,
"shared memory usage tr_id: %d key %llx base_va %p shmid 0x%X|0x%X", "shared memory usage tr_id: %d key %llx base_va %p shmid 0x%X|0x%X",
tr_id, tr_id,
(unsigned long long)mkey->key, (unsigned long long)mkey->handle.key,
mkey->va_base, mkey->va_base,
MEMHEAP_SHM_GET_TYPE(mkey->key), MEMHEAP_SHM_GET_TYPE(mkey->handle.key),
MEMHEAP_SHM_GET_ID(mkey->key)); MEMHEAP_SHM_GET_ID(mkey->handle.key));
if (MEMHEAP_SHM_GET_TYPE(mkey->key) == MAP_SEGMENT_ALLOC_SHM) { if (MEMHEAP_SHM_GET_TYPE(mkey->handle.key) == MAP_SEGMENT_ALLOC_SHM) {
mkey->va_base = shmat(MEMHEAP_SHM_GET_ID(mkey->key), mkey->va_base = shmat(MEMHEAP_SHM_GET_ID(mkey->handle.key),
0, 0,
0); 0);
} else if (MEMHEAP_SHM_GET_TYPE(mkey->key) == MAP_SEGMENT_ALLOC_IBV) { } else if (MEMHEAP_SHM_GET_TYPE(mkey->handle.key) == MAP_SEGMENT_ALLOC_IBV) {
#if defined(MPAGE_ENABLE) && (MPAGE_ENABLE > 0) #if defined(MPAGE_ENABLE) && (MPAGE_ENABLE > 0)
openib_device_t *device = NULL; openib_device_t *device = NULL;
struct ibv_mr *ib_mr; struct ibv_mr *ib_mr;
@ -200,7 +200,7 @@ static void memheap_attach_segment(mca_spml_mkey_t *mkey, int tr_id)
/* workaround mtt problem - request aligned addresses */ /* workaround mtt problem - request aligned addresses */
++mr_count; ++mr_count;
addr = (void *)(mca_memheap_base_start_address + mca_memheap_base_mr_interleave_factor*1024ULL*1024ULL*1024ULL*mr_count); addr = (void *)(mca_memheap_base_start_address + mca_memheap_base_mr_interleave_factor*1024ULL*1024ULL*1024ULL*mr_count);
ib_mr = ibv_reg_shared_mr(MEMHEAP_SHM_GET_ID(mkey->key), ib_mr = ibv_reg_shared_mr(MEMHEAP_SHM_GET_ID(mkey->handle.key),
device->ib_pd, addr, access_flag); device->ib_pd, addr, access_flag);
if (NULL == ib_mr) if (NULL == ib_mr)
{ {
@ -221,15 +221,15 @@ static void memheap_attach_segment(mca_spml_mkey_t *mkey, int tr_id)
} else { } else {
MEMHEAP_ERROR("tr_id: %d key %llx attach failed: incorrect shmid 0x%X|0x%X", MEMHEAP_ERROR("tr_id: %d key %llx attach failed: incorrect shmid 0x%X|0x%X",
tr_id, tr_id,
(unsigned long long)mkey->key, (unsigned long long)mkey->handle.key,
MEMHEAP_SHM_GET_TYPE(mkey->key), MEMHEAP_SHM_GET_TYPE(mkey->handle.key),
MEMHEAP_SHM_GET_ID(mkey->key)); MEMHEAP_SHM_GET_ID(mkey->handle.key));
oshmem_shmem_abort(-1); oshmem_shmem_abort(-1);
} }
if ((void *) -1 == (void *) mkey->va_base) { if ((void *) -1 == (void *) mkey->va_base) {
MEMHEAP_ERROR("tr_id: %d key %llx attach failed: errno = %d", MEMHEAP_ERROR("tr_id: %d key %llx attach failed: errno = %d",
tr_id, (unsigned long long)mkey->key, errno); tr_id, (unsigned long long)mkey->handle.key, errno);
oshmem_shmem_abort(-1); oshmem_shmem_abort(-1);
} }
} }
@ -246,7 +246,7 @@ static void do_mkey_resp(opal_buffer_t *msg)
opal_dss.unpack(msg, &n, &cnt, OPAL_UINT32); opal_dss.unpack(msg, &n, &cnt, OPAL_UINT32);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
opal_dss.unpack(msg, &tr_id, &cnt, OPAL_UINT32); opal_dss.unpack(msg, &tr_id, &cnt, OPAL_UINT32);
opal_dss.unpack(msg, &memheap_oob.mkeys[tr_id].key, &cnt, OPAL_UINT64); opal_dss.unpack(msg, &memheap_oob.mkeys[tr_id].handle.key, &cnt, OPAL_UINT64);
opal_dss.unpack(msg, opal_dss.unpack(msg,
&memheap_oob.mkeys[tr_id].va_base, &memheap_oob.mkeys[tr_id].va_base,
&cnt, &cnt,
@ -268,7 +268,7 @@ static void do_mkey_resp(opal_buffer_t *msg)
MEMHEAP_VERBOSE(5, MEMHEAP_VERBOSE(5,
"tr_id: %d key %llx base_va %p", "tr_id: %d key %llx base_va %p",
tr_id, (unsigned long long)memheap_oob.mkeys[tr_id].key, memheap_oob.mkeys[tr_id].va_base); tr_id, (unsigned long long)memheap_oob.mkeys[tr_id].handle.key, memheap_oob.mkeys[tr_id].va_base);
} }
} }
@ -404,7 +404,7 @@ static int memheap_oob_get_mkeys(int pe, uint32_t seg, mca_spml_mkey_t *mkeys)
"MKEY CALCULATED BY LOCAL SPML: pe: %d tr_id: %d key %llx base_va %p", "MKEY CALCULATED BY LOCAL SPML: pe: %d tr_id: %d key %llx base_va %p",
pe, pe,
i, i,
(unsigned long long)mkeys[i].key, (unsigned long long)mkeys[i].handle.key,
mkeys[i].va_base); mkeys[i].va_base);
} }
return OSHMEM_SUCCESS; return OSHMEM_SUCCESS;
@ -552,14 +552,14 @@ mca_spml_mkey_t * mca_memheap_base_get_cached_mkey(int pe,
if (pe == oshmem_my_proc_id()) { if (pe == oshmem_my_proc_id()) {
*rva = va; *rva = va;
MEMHEAP_VERBOSE_FASTPATH(10, "rkey: pe=%d va=%p -> (local) %lx %p", pe, va, MEMHEAP_VERBOSE_FASTPATH(10, "rkey: pe=%d va=%p -> (local) %lx %p", pe, va,
s->mkeys[btl_id].key, *rva); s->mkeys[btl_id].handle.key, *rva);
return &s->mkeys[btl_id]; return &s->mkeys[btl_id];
} }
if (OPAL_LIKELY(s->mkeys_cache[pe])) { if (OPAL_LIKELY(s->mkeys_cache[pe])) {
mkey = &s->mkeys_cache[pe][btl_id]; mkey = &s->mkeys_cache[pe][btl_id];
*rva = va2rva(va, s->start, mkey->va_base); *rva = va2rva(va, s->start, mkey->va_base);
MEMHEAP_VERBOSE_FASTPATH(10, "rkey: pe=%d va=%p -> (cached) %lx %p", pe, (void *)va, mkey->key, (void *)*rva); MEMHEAP_VERBOSE_FASTPATH(10, "rkey: pe=%d va=%p -> (cached) %lx %p", pe, (void *)va, mkey->handle.key, (void *)*rva);
return mkey; return mkey;
} }
@ -577,7 +577,7 @@ mca_spml_mkey_t * mca_memheap_base_get_cached_mkey(int pe,
mkey = &s->mkeys_cache[pe][btl_id]; mkey = &s->mkeys_cache[pe][btl_id];
*rva = va2rva(va, s->start, mkey->va_base); *rva = va2rva(va, s->start, mkey->va_base);
MEMHEAP_VERBOSE_FASTPATH(5, "rkey: pe=%d va=%p -> (remote lookup) %lx %p", pe, (void *)va, mkey->key, (void *)*rva); MEMHEAP_VERBOSE_FASTPATH(5, "rkey: pe=%d va=%p -> (remote lookup) %lx %p", pe, (void *)va, mkey->handle.key, (void *)*rva);
return mkey; return mkey;
} }

Просмотреть файл

@ -542,16 +542,16 @@ mca_spml_mkey_t *mca_spml_ikrit_register(void* addr,
switch (i) { switch (i) {
case MXM_PTL_SHM: case MXM_PTL_SHM:
if ((int) MEMHEAP_SHM_GET_ID(shmid) != MEMHEAP_SHM_INVALID) { if ((int) MEMHEAP_SHM_GET_ID(shmid) != MEMHEAP_SHM_INVALID) {
mkeys[i].key = shmid; mkeys[i].handle.key = shmid;
mkeys[i].va_base = 0; mkeys[i].va_base = 0;
} else { } else {
mkeys[i].key = 0; mkeys[i].handle.key = 0;
mkeys[i].va_base = addr; mkeys[i].va_base = addr;
} }
mkeys[i].spml_context = 0; mkeys[i].spml_context = 0;
break; break;
case MXM_PTL_SELF: case MXM_PTL_SELF:
mkeys[i].key = 0; mkeys[i].handle.key = 0;
mkeys[i].spml_context = 0; mkeys[i].spml_context = 0;
mkeys[i].va_base = addr; mkeys[i].va_base = addr;
break; break;
@ -559,11 +559,11 @@ mca_spml_mkey_t *mca_spml_ikrit_register(void* addr,
mkeys[i].va_base = addr; mkeys[i].va_base = addr;
mkeys[i].spml_context = 0; mkeys[i].spml_context = 0;
#if MXM_API < MXM_VERSION(1,5) #if MXM_API < MXM_VERSION(1,5)
mkeys[i].ib.lkey = mkeys[i].ib.rkey = MXM_MKEY_NONE; mkeys[i].handle.ib.lkey = mkeys[i].handle.ib.rkey = MXM_MKEY_NONE;
#elif MXM_API < MXM_VERSION(2,0) #elif MXM_API < MXM_VERSION(2,0)
mkeys[i].ib.lkey = mkeys[i].ib.rkey = 0; mkeys[i].handle.ib.lkey = mkeys[i].handle.ib.rkey = 0;
#else #else
mkeys[i].ib.lkey = mkeys[i].ib.rkey = 0; mkeys[i].handle.ib.lkey = mkeys[i].handle.ib.rkey = 0;
err = mxm_mem_map(mca_spml_ikrit.mxm_context, &addr, &size, 0, 0, 0); err = mxm_mem_map(mca_spml_ikrit.mxm_context, &addr, &size, 0, 0, 0);
if (MXM_OK != err) { if (MXM_OK != err) {
SPML_VERBOSE(1, "failed to register memory: %s", mxm_error_string(err)); SPML_VERBOSE(1, "failed to register memory: %s", mxm_error_string(err));
@ -579,7 +579,7 @@ mca_spml_mkey_t *mca_spml_ikrit_register(void* addr,
} }
SPML_VERBOSE(5, SPML_VERBOSE(5,
"rank %d ptl %d rkey %x lkey %x key %llx address 0x%llX len %llu shmid 0x%X|0x%X", "rank %d ptl %d rkey %x lkey %x key %llx address 0x%llX len %llu shmid 0x%X|0x%X",
oshmem_proc_local_proc->proc_name.vpid, i, mkeys[i].ib.rkey, mkeys[i].ib.lkey, (unsigned long long)mkeys[i].key, (unsigned long long)mkeys[i].va_base, (unsigned long long)size, MEMHEAP_SHM_GET_TYPE(shmid), MEMHEAP_SHM_GET_ID(shmid)); oshmem_proc_local_proc->proc_name.vpid, i, mkeys[i].handle.ib.rkey, mkeys[i].handle.ib.lkey, (unsigned long long)mkeys[i].handle.key, (unsigned long long)mkeys[i].va_base, (unsigned long long)size, MEMHEAP_SHM_GET_TYPE(shmid), MEMHEAP_SHM_GET_ID(shmid));
} }
*count = MXM_PTL_LAST; *count = MXM_PTL_LAST;
@ -694,7 +694,7 @@ static int mca_spml_ikrit_get_helper(mxm_send_req_t *sreq,
SPML_VERBOSE(100, SPML_VERBOSE(100,
"get: pe:%d ptl=%d src=%p -> dst: %p sz=%d. src_rva=%p, src_rkey=0x%lx", "get: pe:%d ptl=%d src=%p -> dst: %p sz=%d. src_rva=%p, src_rkey=0x%lx",
src, ptl_id, src_addr, dst_addr, (int)size, (void *)rva, r_mkey->key); src, ptl_id, src_addr, dst_addr, (int)size, (void *)rva, r_mkey->handle.key);
/* mxm does not really cares for get lkey */ /* mxm does not really cares for get lkey */
sreq->base.mq = mca_spml_ikrit.mxm_mq; sreq->base.mq = mca_spml_ikrit.mxm_mq;
@ -704,7 +704,7 @@ static int mca_spml_ikrit_get_helper(mxm_send_req_t *sreq,
sreq->base.data.buffer.length = size; sreq->base.data.buffer.length = size;
#if MXM_API < MXM_VERSION(1,5) #if MXM_API < MXM_VERSION(1,5)
sreq->base.data.buffer.mkey = MXM_MKEY_NONE; sreq->base.data.buffer.mkey = MXM_MKEY_NONE;
sreq->op.mem.remote_mkey = r_mkey->ib.rkey; sreq->op.mem.remote_mkey = r_mkey->handle.ib.rkey;
#elif MXM_API < MXM_VERSION(2,0) #elif MXM_API < MXM_VERSION(2,0)
sreq->base.data.buffer.memh = NULL; sreq->base.data.buffer.memh = NULL;
sreq->op.mem.remote_memh = NULL; sreq->op.mem.remote_memh = NULL;
@ -750,7 +750,7 @@ static inline int mca_spml_ikrit_get_shm(void *src_addr,
SPML_VERBOSE(100, SPML_VERBOSE(100,
"shm get: pe:%d src=%p -> dst: %p sz=%d. src_rva=%p, src_rkey=0x%lx", "shm get: pe:%d src=%p -> dst: %p sz=%d. src_rva=%p, src_rkey=0x%lx",
src, src_addr, dst_addr, (int)size, (void *)rva, r_mkey->key); src, src_addr, dst_addr, (int)size, (void *)rva, r_mkey->handle.key);
memcpy(dst_addr, (void *) (unsigned long) rva, size); memcpy(dst_addr, (void *) (unsigned long) rva, size);
opal_progress(); opal_progress();
return OSHMEM_SUCCESS; return OSHMEM_SUCCESS;
@ -986,7 +986,7 @@ static inline int mca_spml_ikrit_put_internal(void* dst_addr,
#if SPML_IKRIT_PUT_DEBUG == 1 #if SPML_IKRIT_PUT_DEBUG == 1
SPML_VERBOSE(100, "put: pe:%d ptl=%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx", SPML_VERBOSE(100, "put: pe:%d ptl=%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx",
dst, ptl_id, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->key); dst, ptl_id, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->handle.key);
#endif #endif
if (ptl_id == MXM_PTL_SHM) { if (ptl_id == MXM_PTL_SHM) {
@ -1013,7 +1013,7 @@ static inline int mca_spml_ikrit_put_internal(void* dst_addr,
#if SPML_IKRIT_PUT_DEBUG == 1 #if SPML_IKRIT_PUT_DEBUG == 1
SPML_VERBOSE(100, "put: pe:%d ptl=%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx", SPML_VERBOSE(100, "put: pe:%d ptl=%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx",
dst, ptl_id, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->key); dst, ptl_id, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->handle.key);
#endif #endif
put_req = alloc_put_req(); put_req = alloc_put_req();
@ -1065,7 +1065,7 @@ static inline int mca_spml_ikrit_put_internal(void* dst_addr,
#if MXM_API < MXM_VERSION(1,5) #if MXM_API < MXM_VERSION(1,5)
put_req->mxm_req.base.data.buffer.mkey = MXM_MKEY_NONE; put_req->mxm_req.base.data.buffer.mkey = MXM_MKEY_NONE;
put_req->mxm_req.op.mem.remote_mkey = r_mkey->ib.rkey; put_req->mxm_req.op.mem.remote_mkey = r_mkey->handle.ib.rkey;
#elif MXM_API < MXM_VERSION(2, 0) #elif MXM_API < MXM_VERSION(2, 0)
put_req->mxm_req.base.data.buffer.memh = NULL; put_req->mxm_req.base.data.buffer.memh = NULL;
put_req->mxm_req.op.mem.remote_memh = NULL; put_req->mxm_req.op.mem.remote_memh = NULL;
@ -1162,7 +1162,7 @@ int mca_spml_ikrit_put_simple(void* dst_addr,
#if SPML_IKRIT_PUT_DEBUG == 1 #if SPML_IKRIT_PUT_DEBUG == 1
SPML_VERBOSE(100, "put: pe:%d ptl=%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx", SPML_VERBOSE(100, "put: pe:%d ptl=%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx",
dst, ptl_id, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->key); dst, ptl_id, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->handle.key);
#endif #endif
if (ptl_id == MXM_PTL_SHM) { if (ptl_id == MXM_PTL_SHM) {
@ -1190,7 +1190,7 @@ int mca_spml_ikrit_put_simple(void* dst_addr,
#if SPML_IKRIT_PUT_DEBUG == 1 #if SPML_IKRIT_PUT_DEBUG == 1
SPML_VERBOSE(100, "put: pe:%d ptl=%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx", SPML_VERBOSE(100, "put: pe:%d ptl=%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx",
dst, ptl_id, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->key); dst, ptl_id, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->handle.key);
#endif #endif
/* fill out request */ /* fill out request */

Просмотреть файл

@ -79,7 +79,7 @@ typedef struct mca_spml_mkey {
uint32_t lkey; uint32_t lkey;
} ib; } ib;
uint64_t key; uint64_t key;
}; } handle;
void* va_base; void* va_base;
void *spml_context; /* spml module can attach internal structures here */ void *spml_context; /* spml module can attach internal structures here */
} mca_spml_mkey_t; } mca_spml_mkey_t;

Просмотреть файл

@ -369,7 +369,7 @@ mca_spml_mkey_t *mca_spml_yoda_register(void* addr,
/* If we have shared memory just save its id*/ /* If we have shared memory just save its id*/
if ((ybtl->btl_type == YODA_BTL_SM) if ((ybtl->btl_type == YODA_BTL_SM)
&& ((int) MEMHEAP_SHM_GET_ID(shmid) != MEMHEAP_SHM_INVALID)) { && ((int) MEMHEAP_SHM_GET_ID(shmid) != MEMHEAP_SHM_INVALID)) {
mkeys[i].key = shmid; mkeys[i].handle.key = shmid;
continue; continue;
} }
@ -432,7 +432,7 @@ mca_spml_mkey_t *mca_spml_yoda_register(void* addr,
SPML_VERBOSE(5, SPML_VERBOSE(5,
"rank %d btl %s rkey %x lkey %x key %llx address 0x%p len %llu shmid 0x%X|0x%X", "rank %d btl %s rkey %x lkey %x key %llx address 0x%p len %llu shmid 0x%X|0x%X",
oshmem_proc_local_proc->proc_name.vpid, btl_type2str(ybtl->btl_type), mkeys[i].ib.rkey, mkeys[i].ib.lkey, (unsigned long long)mkeys[i].key, mkeys[i].va_base, (unsigned long long)size, MEMHEAP_SHM_GET_TYPE(shmid), MEMHEAP_SHM_GET_ID(shmid)); oshmem_proc_local_proc->proc_name.vpid, btl_type2str(ybtl->btl_type), mkeys[i].handle.ib.rkey, mkeys[i].handle.ib.lkey, (unsigned long long)mkeys[i].handle.key, mkeys[i].va_base, (unsigned long long)size, MEMHEAP_SHM_GET_TYPE(shmid), MEMHEAP_SHM_GET_ID(shmid));
} }
OBJ_DESTRUCT(&convertor); OBJ_DESTRUCT(&convertor);
*count = mca_spml_yoda.n_btls; *count = mca_spml_yoda.n_btls;
@ -760,7 +760,7 @@ static inline int mca_spml_yoda_put_internal(void *dst_addr,
#if SPML_YODA_DEBUG == 1 #if SPML_YODA_DEBUG == 1
SPML_VERBOSE(100, "put: pe:%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx", SPML_VERBOSE(100, "put: pe:%d dst=%p <- src: %p sz=%d. dst_rva=%p, dst_rkey=0x%lx",
dst, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->key); dst, dst_addr, src_addr, (int)size, (void *)rva, r_mkey->handle.key);
#endif #endif
ybtl = &mca_spml_yoda.btl_type_map[btl_id]; ybtl = &mca_spml_yoda.btl_type_map[btl_id];
@ -1042,7 +1042,7 @@ int mca_spml_yoda_get(void* src_addr, size_t size, void* dst_addr, int src)
} }
#if SPML_YODA_DEBUG == 1 #if SPML_YODA_DEBUG == 1
SPML_VERBOSE(100, "get: pe:%d src=%p -> dst: %p sz=%d. src_rva=%p, src_rkey=0x%lx", SPML_VERBOSE(100, "get: pe:%d src=%p -> dst: %p sz=%d. src_rva=%p, src_rkey=0x%lx",
src, src_addr, dst_addr, (int)size, (void *)rva, r_mkey->key); src, src_addr, dst_addr, (int)size, (void *)rva, r_mkey->handle.key);
#endif #endif
ybtl = &mca_spml_yoda.btl_type_map[btl_id]; ybtl = &mca_spml_yoda.btl_type_map[btl_id];