diff --git a/ompi/mca/btl/portals4/btl_portals4.c b/ompi/mca/btl/portals4/btl_portals4.c index 4545d0ddd3..c2c87003dc 100644 --- a/ompi/mca/btl/portals4/btl_portals4.c +++ b/ompi/mca/btl/portals4/btl_portals4.c @@ -426,7 +426,7 @@ mca_btl_portals4_finalize(struct mca_btl_base_module_t *btl) #if OMPI_PORTALS4_MAX_MD_SIZE < OMPI_PORTALS4_MAX_VA_SIZE if (NULL != mca_btl_portals4_module.send_md_hs) { int i; - int num_mds = mca_btl_portals4_module_get_num_mds(); + int num_mds = mca_btl_portals4_get_num_mds(); for (i = 0 ; i < num_mds ; ++i) { if (!PtlHandleIsEqual(mca_btl_portals4_module.send_md_hs[i], PTL_INVALID_HANDLE)) { diff --git a/ompi/mca/btl/portals4/btl_portals4.h b/ompi/mca/btl/portals4/btl_portals4.h index 7be60b5888..72c402e9c7 100644 --- a/ompi/mca/btl/portals4/btl_portals4.h +++ b/ompi/mca/btl/portals4/btl_portals4.h @@ -173,7 +173,7 @@ ompi_btl_portals4_get_md(const void *ptr, ptl_handle_md_t *md_h, void **base_ptr #if OMPI_PORTALS4_MAX_MD_SIZE < OMPI_PORTALS4_MAX_VA_SIZE int mask = (1ULL << (OMPI_PORTALS4_MAX_VA_SIZE - OMPI_PORTALS4_MAX_MD_SIZE + 1)) - 1; int which = (((uintptr_t) ptr) >> (OMPI_PORTALS4_MAX_MD_SIZE - 1)) & mask; - *md_h = ompi_btl_portals4.send_md_hs[which]; + *md_h = mca_btl_portals4_module.send_md_hs[which]; *base_ptr = (void*) (which * (1ULL << (OMPI_PORTALS4_MAX_MD_SIZE - 1))); #else *md_h = mca_btl_portals4_module.send_md_h; @@ -183,7 +183,7 @@ ompi_btl_portals4_get_md(const void *ptr, ptl_handle_md_t *md_h, void **base_ptr static inline int -ompi_btl_portals4_get_num_mds(void) +mca_btl_portals4_get_num_mds(void) { #if OMPI_PORTALS4_MAX_MD_SIZE < OMPI_PORTALS4_MAX_VA_SIZE return (1 << (OMPI_PORTALS4_MAX_VA_SIZE - OMPI_PORTALS4_MAX_MD_SIZE + 1)); diff --git a/ompi/mca/btl/portals4/btl_portals4_component.c b/ompi/mca/btl/portals4/btl_portals4_component.c index 1caabc1ad7..fca70012e3 100644 --- a/ompi/mca/btl/portals4/btl_portals4_component.c +++ b/ompi/mca/btl/portals4/btl_portals4_component.c @@ -418,8 +418,8 @@ static mca_btl_base_module_t** mca_btl_portals4_component_init(int *num_btls, #if OMPI_PORTALS4_MAX_MD_SIZE < OMPI_PORTALS4_MAX_VA_SIZE { int i; - int num_mds = ompi_btl_portals4_get_num_mds(); - ptl_size_t size = 1ULL << OMPI_PORTALS4_MAX_MD_SIZE; + int num_mds = mca_btl_portals4_get_num_mds(); + ptl_size_t size = (1ULL << OMPI_PORTALS4_MAX_MD_SIZE) - 1; ptl_size_t offset_unit = (1ULL << OMPI_PORTALS4_MAX_MD_SIZE) / 2; mca_btl_portals4_module.send_md_hs = malloc(sizeof(ptl_handle_md_t) * num_mds); @@ -439,7 +439,7 @@ static mca_btl_base_module_t** mca_btl_portals4_component_init(int *num_btls, md.start = (char*) (offset_unit * i); md.length = (i - 1 == num_mds) ? size / 2 : size; md.options = 0; - md.eq_handle = mca_btl_portals4_module.send_eq_h; + md.eq_handle = mca_btl_portals4_module.recv_eq_h; md.ct_handle = PTL_CT_NONE; opal_output_verbose(50, ompi_btl_base_framework.framework_output, diff --git a/ompi/mca/btl/portals4/btl_portals4_frag.c b/ompi/mca/btl/portals4/btl_portals4_frag.c index 7edea53f54..9de6be39b8 100644 --- a/ompi/mca/btl/portals4/btl_portals4_frag.c +++ b/ompi/mca/btl/portals4/btl_portals4_frag.c @@ -50,7 +50,7 @@ static void mca_btl_portals4_frag_eager_destructor(mca_btl_portals4_frag_t* frag) { if (PTL_INVALID_HANDLE == frag->me_h) { -/* PtlMDUnlink(frag->me_h); */ + PtlMDRelease(frag->me_h); frag->me_h = PTL_INVALID_HANDLE; } } diff --git a/ompi/mca/coll/portals4/coll_portals4_component.c b/ompi/mca/coll/portals4/coll_portals4_component.c index c7834036b1..d449fd9147 100644 --- a/ompi/mca/coll/portals4/coll_portals4_component.c +++ b/ompi/mca/coll/portals4/coll_portals4_component.c @@ -307,8 +307,8 @@ portals4_init_query(bool enable_progress_threads, { int i; int num_mds = ompi_coll_portals4_get_num_mds(); - ptl_size_t size = OMPI_PORTALS4_MAX_MD_SIZE; - ptl_size_t offset_unit = OMPI_PORTALS4_MAX_MD_SIZE / 2; + ptl_size_t size = (1ULL << OMPI_PORTALS4_MAX_MD_SIZE) - 1; + ptl_size_t offset_unit = (1ULL << OMPI_PORTALS4_MAX_MD_SIZE) / 2; mca_coll_portals4_component.md_hs = malloc(sizeof(ptl_handle_md_t) * num_mds); if (NULL == mca_coll_portals4_component.md_hs) { diff --git a/ompi/mca/mtl/portals4/mtl_portals4_component.c b/ompi/mca/mtl/portals4/mtl_portals4_component.c index feb54f67a8..0ceee4fb13 100644 --- a/ompi/mca/mtl/portals4/mtl_portals4_component.c +++ b/ompi/mca/mtl/portals4/mtl_portals4_component.c @@ -351,7 +351,7 @@ ompi_mtl_portals4_component_init(bool enable_progress_threads, { int i; int num_mds = ompi_mtl_portals4_get_num_mds(); - ptl_size_t size = 1ULL << OMPI_PORTALS4_MAX_MD_SIZE; + ptl_size_t size = (1ULL << OMPI_PORTALS4_MAX_MD_SIZE) - 1; ptl_size_t offset_unit = (1ULL << OMPI_PORTALS4_MAX_MD_SIZE) / 2; ompi_mtl_portals4.send_md_hs = malloc(sizeof(ptl_handle_md_t) * num_mds);