Skip to content

Commit 9e58b48

Browse files
committed
mtl-portals4: Correct how the request_status._ucount is set
1 parent 3ca194f commit 9e58b48

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

ompi/mca/mtl/portals4/mtl_portals4_recv.c

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ ompi_mtl_portals4_recv_progress(ptl_event_t *ev,
113113
ptl_request->hdr_data = ev->hdr_data;
114114
#endif
115115

116+
ptl_request->super.super.ompi_req->req_status._ucount = ev->mlength;
116117
if (!MTL_PORTALS4_IS_SHORT_MSG(ev->match_bits) && ompi_mtl_portals4.protocol == rndv) {
117118
/* If it's not a short message and we're doing rndv, we
118119
only have the first part of the message. Issue the get
@@ -142,8 +143,6 @@ ompi_mtl_portals4_recv_progress(ptl_event_t *ev,
142143
__FILE__, __LINE__, ret);
143144
ptl_request->super.super.ompi_req->req_status.MPI_ERROR = ret;
144145
}
145-
ptl_request->super.super.ompi_req->req_status._ucount = ev->mlength;
146-
147146
OPAL_OUTPUT_VERBOSE((50, ompi_mtl_base_framework.framework_output,
148147
"Recv %lu (0x%lx) completed, expected",
149148
ptl_request->opcount, ptl_request->hdr_data));
@@ -166,11 +165,7 @@ ompi_mtl_portals4_recv_progress(ptl_event_t *ev,
166165

167166
/* set the received length in the status, now that we know
168167
excatly how much data was sent. */
169-
ptl_request->super.super.ompi_req->req_status._ucount = ev->mlength;
170-
if (ompi_mtl_portals4.protocol == rndv) {
171-
ptl_request->super.super.ompi_req->req_status._ucount +=
172-
ompi_mtl_portals4.eager_limit;
173-
}
168+
ptl_request->super.super.ompi_req->req_status._ucount += ev->mlength;
174169

175170
#if OMPI_MTL_PORTALS4_FLOW_CONTROL
176171
OPAL_THREAD_ADD32(&ompi_mtl_portals4.flowctl.send_slots, 1);
@@ -281,10 +276,9 @@ ompi_mtl_portals4_recv_progress(ptl_event_t *ev,
281276
ptl_request->super.super.completion_callback(&ptl_request->super.super);
282277

283278
} else {
284-
if (ev->mlength > 0) {
285-
/* if rndv or triggered, copy the eager part to the right place */
286-
memcpy(ptl_request->delivery_ptr, ev->start, ev->mlength);
287-
}
279+
280+
/* For long messages in the overflow list, ev->mlength = 0 */
281+
ptl_request->super.super.ompi_req->req_status._ucount = 0;
288282

289283
ret = read_msg((char*) ptl_request->delivery_ptr + ev->mlength,
290284
((msg_length > ptl_request->delivery_len) ?

0 commit comments

Comments
 (0)