1
1

THe Portals 4 reference implementation will sometimes return a NI_FLOWCTL for both a

send and an ack.  I'm not sure whether this violates the spec, so work around until
we decide...

This commit was SVN r27244.
Этот коммит содержится в:
Brian Barrett 2012-09-05 19:36:19 +00:00
родитель 38440369a7
Коммит fa4c2af9ed
2 изменённых файлов: 10 добавлений и 2 удалений

Просмотреть файл

@ -25,6 +25,7 @@ struct ompi_mtl_portals4_pending_request_t {
int contextid; int contextid;
int tag; int tag;
int my_rank; int my_rank;
int fc_notified;
struct mca_mtl_base_endpoint_t *endpoint; struct mca_mtl_base_endpoint_t *endpoint;
struct ompi_mtl_portals4_isend_request_t *ptl_request; struct ompi_mtl_portals4_isend_request_t *ptl_request;
}; };

Просмотреть файл

@ -47,8 +47,14 @@ ompi_mtl_portals4_callback(ptl_event_t *ev,
ptl_request->pending; ptl_request->pending;
OPAL_OUTPUT_VERBOSE((10, ompi_mtl_base_output, OPAL_OUTPUT_VERBOSE((10, ompi_mtl_base_output,
"send %lu hit flow control", "send %lu hit flow control (%d)",
ptl_request->opcount)); ptl_request->opcount, ev->type));
/* BWB: FIX ME: this is a hack.. */
if (pending->fc_notified) {
return;
}
pending->fc_notified = 1;
if (!PtlHandleIsEqual(ptl_request->me_h, PTL_INVALID_HANDLE)) { if (!PtlHandleIsEqual(ptl_request->me_h, PTL_INVALID_HANDLE)) {
ret = PtlMEUnlink(ptl_request->me_h); ret = PtlMEUnlink(ptl_request->me_h);
@ -414,6 +420,7 @@ ompi_mtl_portals4_send_start(struct mca_mtl_base_module_t* mtl,
pending->contextid = comm->c_contextid; pending->contextid = comm->c_contextid;
pending->tag = tag; pending->tag = tag;
pending->my_rank = comm->c_my_rank; pending->my_rank = comm->c_my_rank;
pending->fc_notified = 0;
pending->endpoint = endpoint; pending->endpoint = endpoint;
pending->ptl_request = ptl_request; pending->ptl_request = ptl_request;