int mca_spml_ikrit_deregister(sshmem_mkey_t *mkeys) { int i; MCA_SPML_CALL(fence(oshmem_ctx_default)); if (!mkeys) return OSHMEM_SUCCESS; for (i = 0; i < MXM_PTL_LAST; i++) { switch (i) { case MXM_PTL_SHM: break; case MXM_PTL_RDMA: /* dereg memory */ if (!mkeys[i].spml_context) break; mxm_mem_unmap(mca_spml_ikrit.mxm_context, (void *)mkeys[i].va_base, (unsigned long)mkeys[i].spml_context, 0); if (0 < mkeys[i].len) { free(mkeys[i].u.data); } break; } } free(mkeys); return OSHMEM_SUCCESS; }
int mca_spml_ikrit_deregister(sshmem_mkey_t *mkeys) { int i; MCA_SPML_CALL(fence()); if (!mkeys) return OSHMEM_SUCCESS; for (i = 0; i < MXM_PTL_LAST; i++) { switch (i) { #if MXM_API < MXM_VERSION(2,0) case MXM_PTL_SELF: #endif case MXM_PTL_SHM: break; case MXM_PTL_RDMA: /* dereg memory */ if (!mkeys[i].spml_context) break; #if MXM_API >= MXM_VERSION(2,0) mxm_mem_unmap(mca_spml_ikrit.mxm_context, (void *)mkeys[i].va_base, (unsigned long)mkeys[i].spml_context, 0); if (0 < mkeys[i].len) { free(mkeys[i].u.data); } #endif break; } } free(mkeys); return OSHMEM_SUCCESS; }
static void ompi_mtl_mxm_mem_release_cb(void *buf, size_t length, void *cbdata, bool from_alloc) { mxm_mem_unmap(ompi_mtl_mxm.mxm_context, buf, length, from_alloc ? MXM_MEM_UNMAP_MARK_INVALID : 0); }