need to call mpool_release on all registrations obtained in the pml.
sanity checks This commit was SVN r7530.
Этот коммит содержится в:
родитель
4cf4b4ea86
Коммит
c1f5543f62
@ -69,6 +69,13 @@ void mca_mpool_base_mem_cb(void* base, size_t size, void* cbdata)
|
||||
if(base_addr < (void*) reg->bound) {
|
||||
base_addr = down_align_addr( reg->bound, mca_mpool_base_page_size_log );
|
||||
}
|
||||
if(reg->flags & MCA_MPOOL_FLAGS_CACHE) {
|
||||
assert(reg->ref_count <= 3);
|
||||
} else if(reg->flags & MCA_MPOOL_FLAGS_PERSIST) {
|
||||
assert(reg->ref_count <= 2);
|
||||
} else {
|
||||
assert(reg->ref_count <= 1);
|
||||
}
|
||||
current->mpool_module->mpool_deregister(current->mpool_module, reg);
|
||||
}
|
||||
}
|
||||
|
@ -210,7 +210,7 @@ int mca_mpool_mvapi_release(
|
||||
mca_mpool_base_registration_t* registration
|
||||
)
|
||||
{
|
||||
if(0 == OPAL_THREAD_ADD32(®istration->ref_count, -1)) {
|
||||
if(0 >= OPAL_THREAD_ADD32(®istration->ref_count, -1)) {
|
||||
VAPI_ret_t ret;
|
||||
mca_mpool_mvapi_module_t * mpool_mvapi = (mca_mpool_mvapi_module_t*) mpool;
|
||||
mca_mpool_mvapi_registration_t * vapi_reg;
|
||||
|
@ -403,7 +403,11 @@ static void mca_pml_ob1_recv_request_rget(
|
||||
bml_btl,
|
||||
recvreq->req_recv.req_base.req_addr,
|
||||
recvreq->req_recv.req_bytes_packed);
|
||||
|
||||
|
||||
recvreq->req_rdma[0].bml_btl = bml_btl;
|
||||
recvreq->req_rdma[0].btl_reg = reg;
|
||||
recvreq->req_rdma_cnt = 1;
|
||||
|
||||
/* prepare descriptor */
|
||||
mca_bml_base_prepare_dst(
|
||||
bml_btl,
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user