diff --git a/ompi/mca/mtl/portals4/mtl_portals4_component.c b/ompi/mca/mtl/portals4/mtl_portals4_component.c index 07436e268b..37c31da217 100644 --- a/ompi/mca/mtl/portals4/mtl_portals4_component.c +++ b/ompi/mca/mtl/portals4/mtl_portals4_component.c @@ -492,7 +492,7 @@ ompi_mtl_portals4_progress(void) } #else opal_output(ompi_mtl_base_output, - "Flow control situation without recovery"); + "Flow control situation without recovery (PT_DISABLED)"); abort(); #endif break; @@ -509,7 +509,8 @@ ompi_mtl_portals4_progress(void) break; } else if (PTL_EQ_DROPPED == ret) { opal_output(ompi_mtl_base_output, - "Flow control situation without recovery"); + "Flow control situation without recovery (EQ_DROPPED): %d", + which); abort(); } else { opal_output(ompi_mtl_base_output, diff --git a/ompi/mca/mtl/portals4/mtl_portals4_flowctl.c b/ompi/mca/mtl/portals4/mtl_portals4_flowctl.c index 6262447c67..4b42b9f3d2 100644 --- a/ompi/mca/mtl/portals4/mtl_portals4_flowctl.c +++ b/ompi/mca/mtl/portals4/mtl_portals4_flowctl.c @@ -524,6 +524,9 @@ ompi_mtl_portals4_flowctl_start_recover(void) ompi_mtl_portals4.flowctl.flowctl_active = true; } + OPAL_OUTPUT_VERBOSE((50, ompi_mtl_base_output, + "entering flowctl_start_recover")); + ret = ompi_mtl_portals4_flowctl_setup_comm(); if (OMPI_SUCCESS != ret) { opal_output_verbose(1, ompi_mtl_base_output, diff --git a/ompi/mca/mtl/portals4/mtl_portals4_send.c b/ompi/mca/mtl/portals4/mtl_portals4_send.c index 400e8a1c6e..1df91da1b1 100644 --- a/ompi/mca/mtl/portals4/mtl_portals4_send.c +++ b/ompi/mca/mtl/portals4/mtl_portals4_send.c @@ -45,6 +45,10 @@ ompi_mtl_portals4_callback(ptl_event_t *ev, ptl_request->pending; if (ev->ni_fail_type == PTL_NI_FLOW_CTRL) { + OPAL_OUTPUT_VERBOSE((50, ompi_mtl_base_output, + "send %lu hit flow control", + ptl_request->opcount)); + ompi_mtl_portals4_flowctl_start_recover(); opal_list_remove_item(&ompi_mtl_portals4.flowctl.active_sends, &pending->super.super); @@ -501,6 +505,7 @@ ompi_mtl_portals4_send(struct mca_mtl_base_module_t* mtl, opal_atomic_mb(); ompi_mtl_portals4_progress(); } + ret = ptl_request.retval; cleanup: if (NULL != ptl_request.super.buffer_ptr) {