1
1

need to call mpool_release on all registrations obtained in the pml.

sanity checks 

This commit was SVN r7530.
Этот коммит содержится в:
Galen Shipman 2005-09-28 04:49:40 +00:00
родитель 4cf4b4ea86
Коммит c1f5543f62
3 изменённых файлов: 13 добавлений и 2 удалений

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

@ -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(&registration->ref_count, -1)) {
if(0 >= OPAL_THREAD_ADD32(&registration->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,