Skip to content

Commit 7bf4e6a

Browse files
authored
Merge pull request #9685 from karasevb/pml_ucx_send_refactor
pml/ucx: avoid completion callback for blocking send
2 parents ecd012c + a11360c commit 7bf4e6a

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

ompi/mca/pml/ucx/pml_ucx.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -867,19 +867,19 @@ int mca_pml_ucx_isend(const void *buf, size_t count, ompi_datatype_t *datatype,
867867
static inline __opal_attribute_always_inline__ int
868868
mca_pml_ucx_send_nb(ucp_ep_h ep, const void *buf, size_t count,
869869
ompi_datatype_t *datatype, ucp_datatype_t ucx_datatype,
870-
ucp_tag_t tag, mca_pml_base_send_mode_t mode,
871-
ucp_send_callback_t cb)
870+
ucp_tag_t tag, mca_pml_base_send_mode_t mode)
872871
{
873872
ompi_request_t *req;
874873

875874
req = (ompi_request_t*)mca_pml_ucx_common_send(ep, buf, count, datatype,
876875
mca_pml_ucx_get_datatype(datatype),
877-
tag, mode, cb);
876+
tag, mode,
877+
mca_pml_ucx_send_completion_empty);
878878
if (OPAL_LIKELY(req == NULL)) {
879879
return OMPI_SUCCESS;
880880
} else if (!UCS_PTR_IS_ERR(req)) {
881881
PML_UCX_VERBOSE(8, "got request %p", (void*)req);
882-
MCA_COMMON_UCX_WAIT_LOOP(req, ompi_pml_ucx.ucp_worker, "ucx send", ompi_request_free(&req));
882+
MCA_COMMON_UCX_WAIT_LOOP(req, ompi_pml_ucx.ucp_worker, "ucx send", ucp_request_free(req));
883883
} else {
884884
PML_UCX_ERROR("ucx send failed: %s", ucs_status_string(UCS_PTR_STATUS(req)));
885885
return OMPI_ERROR;
@@ -957,8 +957,7 @@ int mca_pml_ucx_send(const void *buf, size_t count, ompi_datatype_t *datatype, i
957957

958958
return mca_pml_ucx_send_nb(ep, buf, count, datatype,
959959
mca_pml_ucx_get_datatype(datatype),
960-
PML_UCX_MAKE_SEND_TAG(tag, comm), mode,
961-
mca_pml_ucx_send_completion);
960+
PML_UCX_MAKE_SEND_TAG(tag, comm), mode);
962961
}
963962

964963
int mca_pml_ucx_iprobe(int src, int tag, struct ompi_communicator_t* comm,

ompi/mca/pml/ucx/pml_ucx_request.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ void mca_pml_ucx_send_completion(void *request, ucs_status_t status)
8585
mca_pml_ucx_send_completion_internal(request, status);
8686
}
8787

88+
void mca_pml_ucx_send_completion_empty(void *request, ucs_status_t status)
89+
{
90+
/* empty */
91+
}
92+
8893
void mca_pml_ucx_bsend_completion(void *request, ucs_status_t status)
8994
{
9095
mca_pml_ucx_bsend_completion_internal(request, status);

ompi/mca/pml/ucx/pml_ucx_request.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ void mca_pml_ucx_send_completion(void *request, ucs_status_t status);
117117
void mca_pml_ucx_recv_completion(void *request, ucs_status_t status,
118118
ucp_tag_recv_info_t *info);
119119

120+
void mca_pml_ucx_send_completion_empty(void *request, ucs_status_t status);
121+
120122
void mca_pml_ucx_psend_completion(void *request, ucs_status_t status);
121123

122124
void mca_pml_ucx_bsend_completion(void *request, ucs_status_t status);

0 commit comments

Comments
 (0)