change order of ops on register
This commit was SVN r7525.
Этот коммит содержится в:
родитель
285ded5655
Коммит
0fc17cedee
@ -86,17 +86,19 @@ int mca_mpool_gm_register(
|
||||
if(NULL == reg) {
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
if((rc = gm_register_memory(gm_mpool->port, addr, size)) != GM_SUCCESS) {
|
||||
opal_output(0, "[%s:%d] error(%d) registering gm memory\n", __FILE__, __LINE__, rc);
|
||||
OBJ_RELEASE(reg);
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
reg->mpool = mpool;
|
||||
reg->base = down_align_addr(addr, mca_mpool_base_page_size_log);
|
||||
reg->flags = flags;
|
||||
reg->bound = up_align_addr(reg->base + size -1
|
||||
, mca_mpool_base_page_size_log);
|
||||
|
||||
|
||||
if((rc = gm_register_memory(gm_mpool->port, reg->base, reg->bound - reg->base + 1)) != GM_SUCCESS) {
|
||||
opal_output(0, "[%s:%d] error(%d) registering gm memory\n", __FILE__, __LINE__, rc);
|
||||
OBJ_RELEASE(reg);
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
OPAL_THREAD_ADD32(®->ref_count,1);
|
||||
|
||||
if(flags & (MCA_MPOOL_FLAGS_CACHE | MCA_MPOOL_FLAGS_PERSIST)) {
|
||||
|
@ -107,9 +107,16 @@ int mca_mpool_mvapi_register(
|
||||
mr_in.l_key = 0;
|
||||
mr_in.r_key = 0;
|
||||
mr_in.pd_hndl = mpool_module->hca_pd.pd_tag;
|
||||
mr_in.size = size;
|
||||
mr_in.start = (VAPI_virt_addr_t) (MT_virt_addr_t) addr;
|
||||
vapi_reg->base_reg.base = down_align_addr(addr, mca_mpool_base_page_size_log);
|
||||
vapi_reg->base_reg.bound = up_align_addr((void*) ((unsigned long) addr + size - 1)
|
||||
, mca_mpool_base_page_size_log);
|
||||
|
||||
mr_in.size = vapi_reg->base_reg.bound - vapi_reg->base_reg.base + 1;
|
||||
mr_in.start = (VAPI_virt_addr_t) (MT_virt_addr_t) vapi_reg->base_reg.base;
|
||||
mr_in.type = VAPI_MR;
|
||||
|
||||
/* printf("registering addr %p size %d base %p bound %p\n", */
|
||||
/* addr, size, vapi_reg->base_reg.base, vapi_reg->base_reg.bound); */
|
||||
|
||||
ret = VAPI_register_mr(
|
||||
mpool_module->hca_pd.hca,
|
||||
@ -126,9 +133,6 @@ int mca_mpool_mvapi_register(
|
||||
|
||||
vapi_reg->l_key = mr_out.l_key;
|
||||
vapi_reg->r_key = mr_out.r_key;
|
||||
vapi_reg->base_reg.base = down_align_addr(addr, mca_mpool_base_page_size_log);
|
||||
vapi_reg->base_reg.bound = up_align_addr((void*) ((unsigned long) addr + size - 1)
|
||||
, mca_mpool_base_page_size_log);
|
||||
|
||||
assert(vapi_reg->base_reg.bound - vapi_reg->base_reg.base >= 0);
|
||||
|
||||
|
@ -92,8 +92,8 @@ size_t mca_pml_ob1_rdma_btls(
|
||||
/* otherwise if leave_pinned re-register */
|
||||
} else if(mca_pml_ob1.leave_pinned) {
|
||||
unsigned char* new_base = reg->base;
|
||||
size_t new_len = (base - reg->base) + size;
|
||||
|
||||
size_t new_len = (base - reg->base) + size;
|
||||
/* printf("re-reg 2: base %p size %d new_base %p new_len %d\n", base, size, new_base, new_len); */
|
||||
assert(new_len >= size);
|
||||
btl_mpool->mpool_deregister(btl_mpool, reg);
|
||||
btl_mpool->mpool_register(btl_mpool,
|
||||
@ -257,7 +257,8 @@ mca_mpool_base_registration_t* mca_pml_ob1_rdma_registration(
|
||||
} else {
|
||||
unsigned char* new_base = largest->base;
|
||||
size_t new_len = (base - largest->base) + size;
|
||||
|
||||
/* printf("re-reg 2: base %p size %d new_base %p new_len %d\n", base, size, new_base, new_len); */
|
||||
|
||||
btl_mpool->mpool_deregister(btl_mpool, largest);
|
||||
assert(new_len >= size);
|
||||
btl_mpool->mpool_register(btl_mpool,
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user