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.
Этот коммит содержится в:
родитель
38440369a7
Коммит
fa4c2af9ed
@ -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;
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user