Skip to content

Commit c2a1a25

Browse files
committed
pml/cm: update for request changes
This fixes a hang caused by the request refactor work. The cm pml was not updated and was hanging is most cases. Signed-off-by: Nathan Hjelm <[email protected]> (cherry picked from open-mpi/ompi@8445c88) Signed-off-by: Nathan Hjelm <[email protected]>
1 parent b4ff061 commit c2a1a25

File tree

2 files changed

+3
-13
lines changed

2 files changed

+3
-13
lines changed

ompi/mca/pml/cm/pml_cm_recvreq.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -308,15 +308,12 @@ do { \
308308
do { \
309309
assert( false == recvreq->req_base.req_pml_complete ); \
310310
\
311-
OPAL_THREAD_LOCK(&ompi_request_lock); \
312-
\
313311
if( true == recvreq->req_base.req_free_called ) { \
314312
MCA_PML_CM_THIN_RECV_REQUEST_RETURN( recvreq ); \
315313
} else { \
316314
recvreq->req_base.req_pml_complete = true; \
317315
ompi_request_complete( &(recvreq->req_base.req_ompi), true ); \
318316
} \
319-
OPAL_THREAD_UNLOCK(&ompi_request_lock); \
320317
} while(0)
321318

322319

@@ -331,8 +328,6 @@ do { \
331328
do { \
332329
assert( false == recvreq->req_base.req_pml_complete ); \
333330
\
334-
OPAL_THREAD_LOCK(&ompi_request_lock); \
335-
\
336331
if( true == recvreq->req_base.req_free_called ) { \
337332
MCA_PML_CM_HVY_RECV_REQUEST_RETURN( recvreq ); \
338333
} else { \
@@ -345,7 +340,6 @@ do { \
345340
recvreq->req_base.req_pml_complete = true; \
346341
ompi_request_complete( &(recvreq->req_base.req_ompi), true ); \
347342
} \
348-
OPAL_THREAD_UNLOCK(&ompi_request_lock); \
349343
} while(0)
350344

351345

ompi/mca/pml/cm/pml_cm_sendreq.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ do { \
316316
#define MCA_PML_CM_SEND_REQUEST_START_SETUP(req_send) \
317317
do { \
318318
(req_send)->req_base.req_pml_complete = false; \
319-
(req_send)->req_base.req_ompi.req_complete = false; \
319+
(req_send)->req_base.req_ompi.req_complete = REQUEST_PENDING; \
320320
(req_send)->req_base.req_ompi.req_state = \
321321
OMPI_REQUEST_ACTIVE; \
322322
(req_send)->req_base.req_ompi.req_status._cancelled = 0; \
@@ -409,8 +409,7 @@ do {
409409
mca_pml_base_bsend_request_free(sendreq->req_buff); \
410410
} \
411411
\
412-
OPAL_THREAD_LOCK(&ompi_request_lock); \
413-
if( false == sendreq->req_send.req_base.req_ompi.req_complete ) { \
412+
if( !REQUEST_COMPLETE(&sendreq->req_send.req_base.req_ompi)) { \
414413
/* Should only be called for long messages (maybe synchronous) */ \
415414
ompi_request_complete(&(sendreq->req_send.req_base.req_ompi), true); \
416415
} \
@@ -426,7 +425,6 @@ do {
426425
&offset); \
427426
} \
428427
} \
429-
OPAL_THREAD_UNLOCK(&ompi_request_lock); \
430428
} while (0)
431429

432430

@@ -455,8 +453,7 @@ do {
455453
do { \
456454
assert( false == sendreq->req_send.req_base.req_pml_complete ); \
457455
\
458-
OPAL_THREAD_LOCK(&ompi_request_lock); \
459-
if( false == sendreq->req_send.req_base.req_ompi.req_complete ) { \
456+
if( !REQUEST_COMPLETE(&sendreq->req_send.req_base.req_ompi)) { \
460457
/* Should only be called for long messages (maybe synchronous) */ \
461458
ompi_request_complete(&(sendreq->req_send.req_base.req_ompi), true); \
462459
} \
@@ -465,7 +462,6 @@ do { \
465462
if( sendreq->req_send.req_base.req_free_called ) { \
466463
MCA_PML_CM_THIN_SEND_REQUEST_RETURN( sendreq ); \
467464
} \
468-
OPAL_THREAD_UNLOCK(&ompi_request_lock); \
469465
} while (0)
470466

471467

0 commit comments

Comments
 (0)