Skip to content

Commit 3226c6c

Browse files
committed
pml/cm: pack data from application buffer in successive MPI_Start calls
This patch fixes a bug exposed by MTT MPI_Bsend_init_overtake_c, where - MPI_Bsend_init(buf, ..., req) - MPI_Start(req) - MPI_Wait(req, stat) - modify(buf) - MPI_Start(req) // this does not send the updated data - MPI_Wait(buf) This is because PML/CM uses a bounce buffer send_req.req_buff to pack data from the application buffer in MPI_Bsend_int but not MPI_Start. This patch adds a step to pack data from the application buffer in each MPI_Start call. Signed-off-by: Wenduo Wang <wenduwan@amazon.com>
1 parent 1afb524 commit 3226c6c

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

ompi/mca/pml/cm/pml_cm_sendreq.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,10 @@ do { \
375375
iov.iov_base = (IOVBASE_TYPE*)sendreq->req_buff; \
376376
max_data = iov.iov_len = sendreq->req_count; \
377377
iov_count = 1; \
378+
opal_convertor_prepare_for_send( &sendreq->req_send.req_base.req_convertor, \
379+
sendreq->req_send.req_base.req_datatype, \
380+
max_data, \
381+
sendreq->req_addr); \
378382
opal_convertor_pack( &sendreq->req_send.req_base.req_convertor, \
379383
&iov, \
380384
&iov_count, \

0 commit comments

Comments
 (0)