Skip to content

Commit 7fc0841

Browse files
authored
Merge pull request open-mpi#6117 from yosefe/topic/pml-ucx-init-req_mpi_object-v4.0.x
pml_ucx: initialize req_mpi_object.comm for error handler
2 parents 176206f + a112d10 commit 7fc0841

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

ompi/mca/pml/ucx/pml_ucx.c

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -477,11 +477,12 @@ int mca_pml_ucx_irecv_init(void *buf, size_t count, ompi_datatype_t *datatype,
477477
PML_UCX_TRACE_RECV("irecv_init request *%p=%p", buf, count, datatype, src,
478478
tag, comm, (void*)request, (void*)req);
479479

480-
req->ompi.req_state = OMPI_REQUEST_INACTIVE;
481-
req->flags = 0;
482-
req->buffer = buf;
483-
req->count = count;
484-
req->datatype.datatype = mca_pml_ucx_get_datatype(datatype);
480+
req->ompi.req_state = OMPI_REQUEST_INACTIVE;
481+
req->ompi.req_mpi_object.comm = comm;
482+
req->flags = 0;
483+
req->buffer = buf;
484+
req->count = count;
485+
req->datatype.datatype = mca_pml_ucx_get_datatype(datatype);
485486

486487
PML_UCX_MAKE_RECV_TAG(req->tag, req->recv.tag_mask, tag, src, comm);
487488

@@ -510,7 +511,8 @@ int mca_pml_ucx_irecv(void *buf, size_t count, ompi_datatype_t *datatype,
510511
}
511512

512513
PML_UCX_VERBOSE(8, "got request %p", (void*)req);
513-
*request = req;
514+
req->req_mpi_object.comm = comm;
515+
*request = req;
514516
return OMPI_SUCCESS;
515517
}
516518

@@ -582,13 +584,15 @@ int mca_pml_ucx_isend_init(const void *buf, size_t count, ompi_datatype_t *datat
582584
return OMPI_ERROR;
583585
}
584586

585-
req->ompi.req_state = OMPI_REQUEST_INACTIVE;
586-
req->flags = MCA_PML_UCX_REQUEST_FLAG_SEND;
587-
req->buffer = (void *)buf;
588-
req->count = count;
589-
req->tag = PML_UCX_MAKE_SEND_TAG(tag, comm);
590-
req->send.mode = mode;
591-
req->send.ep = ep;
587+
req->ompi.req_state = OMPI_REQUEST_INACTIVE;
588+
req->ompi.req_mpi_object.comm = comm;
589+
req->flags = MCA_PML_UCX_REQUEST_FLAG_SEND;
590+
req->buffer = (void *)buf;
591+
req->count = count;
592+
req->tag = PML_UCX_MAKE_SEND_TAG(tag, comm);
593+
req->send.mode = mode;
594+
req->send.ep = ep;
595+
592596
if (MCA_PML_BASE_SEND_BUFFERED == mode) {
593597
req->datatype.ompi_datatype = datatype;
594598
OBJ_RETAIN(datatype);
@@ -706,7 +710,8 @@ int mca_pml_ucx_isend(const void *buf, size_t count, ompi_datatype_t *datatype,
706710
return OMPI_SUCCESS;
707711
} else if (!UCS_PTR_IS_ERR(req)) {
708712
PML_UCX_VERBOSE(8, "got request %p", (void*)req);
709-
*request = req;
713+
req->req_mpi_object.comm = comm;
714+
*request = req;
710715
return OMPI_SUCCESS;
711716
} else {
712717
PML_UCX_ERROR("ucx send failed: %s", ucs_status_string(UCS_PTR_STATUS(req)));
@@ -786,7 +791,7 @@ int mca_pml_ucx_send(const void *buf, size_t count, ompi_datatype_t *datatype, i
786791
}
787792

788793
int mca_pml_ucx_iprobe(int src, int tag, struct ompi_communicator_t* comm,
789-
int *matched, ompi_status_public_t* mpi_status)
794+
int *matched, ompi_status_public_t* mpi_status)
790795
{
791796
static unsigned progress_count = 0;
792797

@@ -811,7 +816,7 @@ int mca_pml_ucx_iprobe(int src, int tag, struct ompi_communicator_t* comm,
811816
}
812817

813818
int mca_pml_ucx_probe(int src, int tag, struct ompi_communicator_t* comm,
814-
ompi_status_public_t* mpi_status)
819+
ompi_status_public_t* mpi_status)
815820
{
816821
ucp_tag_t ucp_tag, ucp_tag_mask;
817822
ucp_tag_recv_info_t info;

ompi/mca/pml/ucx/pml_ucx_request.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ void mca_pml_ucx_completed_request_init(ompi_request_t *ompi_req)
228228
mca_pml_ucx_request_init_common(ompi_req, false, OMPI_REQUEST_ACTIVE,
229229
mca_pml_completed_request_free,
230230
mca_pml_completed_request_cancel);
231+
ompi_req->req_mpi_object.comm = &ompi_mpi_comm_world.comm;
231232
ompi_request_complete(ompi_req, false);
232-
233233
}
234234

0 commit comments

Comments
 (0)