From e8817f3f63cb0d181e96cf339b47e135fed2b097 Mon Sep 17 00:00:00 2001 From: Brian Barrett Date: Thu, 23 Jun 2011 16:21:10 +0000 Subject: [PATCH] * Don't send acks for expected triggered messages; still need to get the rest of the data * Don't ask for UNLINK events for persistent long unexpected ME or the get MEs. This commit was SVN r24814. --- ompi/mca/mtl/portals4/mtl_portals4_component.c | 2 +- ompi/mca/mtl/portals4/mtl_portals4_recv.c | 2 +- ompi/mca/mtl/portals4/mtl_portals4_send.c | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ompi/mca/mtl/portals4/mtl_portals4_component.c b/ompi/mca/mtl/portals4/mtl_portals4_component.c index 1199d04cfa..9a8cd230a9 100644 --- a/ompi/mca/mtl/portals4/mtl_portals4_component.c +++ b/ompi/mca/mtl/portals4/mtl_portals4_component.c @@ -264,7 +264,7 @@ ompi_mtl_portals4_component_init(bool enable_progress_threads, me.ct_handle = PTL_CT_NONE; me.min_free = 0; me.ac_id.uid = PTL_UID_ANY; - me.options = PTL_ME_OP_PUT | PTL_ME_ACK_DISABLE | PTL_ME_EVENT_COMM_DISABLE; + me.options = PTL_ME_OP_PUT | PTL_ME_ACK_DISABLE | PTL_ME_EVENT_COMM_DISABLE | PTL_ME_EVENT_UNLINK_DISABLE; me.match_id.phys.nid = PTL_NID_ANY; me.match_id.phys.pid = PTL_PID_ANY; me.match_bits = PTL_LONG_MSG; diff --git a/ompi/mca/mtl/portals4/mtl_portals4_recv.c b/ompi/mca/mtl/portals4/mtl_portals4_recv.c index b27c4b1d1b..27478523b0 100644 --- a/ompi/mca/mtl/portals4/mtl_portals4_recv.c +++ b/ompi/mca/mtl/portals4/mtl_portals4_recv.c @@ -457,7 +457,7 @@ ompi_mtl_portals4_irecv(struct mca_mtl_base_module_t* mtl, me.ac_id.uid = PTL_UID_ANY; me.options = PTL_ME_OP_PUT | PTL_ME_USE_ONCE | PTL_ME_EVENT_UNLINK_DISABLE; if (ompi_mtl_portals4.protocol == triggered && length > ompi_mtl_portals4.eager_limit) { - me.options |= PTL_ME_EVENT_CT_COMM | PTL_ME_EVENT_CT_OVERFLOW | PTL_ME_EVENT_CT_BYTES; + me.options |= PTL_ME_EVENT_CT_COMM | PTL_ME_EVENT_CT_OVERFLOW | PTL_ME_EVENT_CT_BYTES | PTL_ME_ACK_DISABLE; } me.match_id = remote_proc; me.match_bits = match_bits; diff --git a/ompi/mca/mtl/portals4/mtl_portals4_send.c b/ompi/mca/mtl/portals4/mtl_portals4_send.c index b198903c60..c281094b95 100644 --- a/ompi/mca/mtl/portals4/mtl_portals4_send.c +++ b/ompi/mca/mtl/portals4/mtl_portals4_send.c @@ -97,7 +97,12 @@ ompi_mtl_portals4_long_callback(ptl_event_t *ev, struct ompi_mtl_portals4_reques /* received an ack - unlink the me */ if (ev->type == PTL_EVENT_ACK) { - PtlMEUnlink(ptl_request->me_h); + ret = PtlMEUnlink(ptl_request->me_h); + if (PTL_OK != ret) { + opal_output_verbose(1, ompi_mtl_base_output, + "%s:%d: long send callback PtlMDUnlink returned %d", + __FILE__, __LINE__, ret); + } } return OMPI_SUCCESS; @@ -245,7 +250,7 @@ ompi_mtl_portals4_long_isend(void *start, int length, int contextid, int localra me.ct_handle = PTL_CT_NONE; me.min_free = 0; me.ac_id.uid = PTL_UID_ANY; - me.options = PTL_ME_OP_GET | PTL_ME_USE_ONCE; + me.options = PTL_ME_OP_GET | PTL_ME_USE_ONCE | PTL_ME_EVENT_UNLINK_DISABLE; me.match_id = endpoint->ptl_proc; if (ompi_mtl_portals4.protocol == rndv) { me.match_bits = ((uint64_t) endpoint->send_count << 32) | length;