int mca_rcache_vma_insert(struct mca_rcache_base_module_t* rcache, mca_mpool_base_registration_t* reg, size_t limit) { int rc; size_t reg_size = reg->bound - reg->base + 1; mca_rcache_vma_module_t *vma_rcache = (mca_rcache_vma_module_t*)rcache; if(limit != 0 && reg_size > limit) { /* return out of resources if request is bigger than cache size * return temp out of resources otherwise */ return OMPI_ERR_OUT_OF_RESOURCE; } /* Check to ensure that the cache is valid */ if (OPAL_UNLIKELY(opal_memory_changed() && NULL != opal_memory->memoryc_process && OPAL_SUCCESS != (rc = opal_memory->memoryc_process()))) { return rc; } rc = mca_rcache_vma_tree_insert(vma_rcache, reg, limit); if (OPAL_LIKELY(OMPI_SUCCESS == rc)) { /* If we successfully registered, then tell the memory manager to start monitoring this region */ opal_memory->memoryc_register(reg->base, (uint64_t) reg_size, (uint64_t) (uintptr_t) reg); } return rc; }
int mca_rcache_vma_insert(struct mca_rcache_base_module_t* rcache, mca_mpool_base_registration_t* reg, size_t limit) { size_t reg_size = reg->bound - reg->base + 1; mca_rcache_vma_module_t *vma_rcache = (mca_rcache_vma_module_t*)rcache; if(limit != 0 && reg_size > limit) { /* return out of resources if request is bigger than cache size * return temp out of resources otherwise */ return OMPI_ERR_OUT_OF_RESOURCE; } return mca_rcache_vma_tree_insert(vma_rcache, reg, limit); }