Removal of ompi_request_lock from pml/ucx.
Этот коммит содержится в:
родитель
46710ba151
Коммит
60d0fbf683
@ -403,11 +403,9 @@ mca_pml_ucx_blocking_recv_completion(void *request, ucs_status_t status,
|
|||||||
(void*)req, ucs_status_string(status), info->sender_tag,
|
(void*)req, ucs_status_string(status), info->sender_tag,
|
||||||
info->length);
|
info->length);
|
||||||
|
|
||||||
OPAL_THREAD_LOCK(&ompi_request_lock);
|
|
||||||
mca_pml_ucx_set_recv_status(&req->req_status, status, info);
|
mca_pml_ucx_set_recv_status(&req->req_status, status, info);
|
||||||
PML_UCX_ASSERT( !(REQUEST_COMPLETE(req)));
|
PML_UCX_ASSERT( !(REQUEST_COMPLETE(req)));
|
||||||
req->req_complete = REQUEST_COMPLETED;
|
ompi_request_complete(req,true);
|
||||||
OPAL_THREAD_UNLOCK(&ompi_request_lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int mca_pml_ucx_recv(void *buf, size_t count, ompi_datatype_t *datatype, int src,
|
int mca_pml_ucx_recv(void *buf, size_t count, ompi_datatype_t *datatype, int src,
|
||||||
@ -747,12 +745,9 @@ int mca_pml_ucx_start(size_t count, ompi_request_t** requests)
|
|||||||
|
|
||||||
PML_UCX_VERBOSE(8, "send completed immediately, completing persistent request %p",
|
PML_UCX_VERBOSE(8, "send completed immediately, completing persistent request %p",
|
||||||
(void*)preq);
|
(void*)preq);
|
||||||
OPAL_THREAD_LOCK(&ompi_request_lock);
|
|
||||||
mca_pml_ucx_set_send_status(&preq->ompi.req_status, UCS_OK);
|
mca_pml_ucx_set_send_status(&preq->ompi.req_status, UCS_OK);
|
||||||
ompi_request_complete(&preq->ompi, true);
|
ompi_request_complete(&preq->ompi, true);
|
||||||
OPAL_THREAD_UNLOCK(&ompi_request_lock);
|
|
||||||
} else if (!UCS_PTR_IS_ERR(tmp_req)) {
|
} else if (!UCS_PTR_IS_ERR(tmp_req)) {
|
||||||
OPAL_THREAD_LOCK(&ompi_request_lock);
|
|
||||||
if (REQUEST_COMPLETE(tmp_req)) {
|
if (REQUEST_COMPLETE(tmp_req)) {
|
||||||
/* tmp_req is already completed */
|
/* tmp_req is already completed */
|
||||||
PML_UCX_VERBOSE(8, "completing persistent request %p", (void*)preq);
|
PML_UCX_VERBOSE(8, "completing persistent request %p", (void*)preq);
|
||||||
@ -765,7 +760,6 @@ int mca_pml_ucx_start(size_t count, ompi_request_t** requests)
|
|||||||
tmp_req->req_complete_cb_data = preq;
|
tmp_req->req_complete_cb_data = preq;
|
||||||
preq->tmp_req = tmp_req;
|
preq->tmp_req = tmp_req;
|
||||||
}
|
}
|
||||||
OPAL_THREAD_UNLOCK(&ompi_request_lock);
|
|
||||||
} else {
|
} else {
|
||||||
PML_UCX_ERROR("ucx %s failed: %s",
|
PML_UCX_ERROR("ucx %s failed: %s",
|
||||||
(preq->flags & MCA_PML_UCX_REQUEST_FLAG_SEND) ? "send" : "recv",
|
(preq->flags & MCA_PML_UCX_REQUEST_FLAG_SEND) ? "send" : "recv",
|
||||||
|
@ -41,11 +41,9 @@ void mca_pml_ucx_send_completion(void *request, ucs_status_t status)
|
|||||||
PML_UCX_VERBOSE(8, "send request %p completed with status %s", (void*)req,
|
PML_UCX_VERBOSE(8, "send request %p completed with status %s", (void*)req,
|
||||||
ucs_status_string(status));
|
ucs_status_string(status));
|
||||||
|
|
||||||
OPAL_THREAD_LOCK(&ompi_request_lock);
|
|
||||||
mca_pml_ucx_set_send_status(&req->req_status, status);
|
mca_pml_ucx_set_send_status(&req->req_status, status);
|
||||||
PML_UCX_ASSERT( !(REQUEST_COMPLETE(req)));
|
PML_UCX_ASSERT( !(REQUEST_COMPLETE(req)));
|
||||||
ompi_request_complete(req, true);
|
ompi_request_complete(req, true);
|
||||||
OPAL_THREAD_UNLOCK(&ompi_request_lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void mca_pml_ucx_recv_completion(void *request, ucs_status_t status,
|
void mca_pml_ucx_recv_completion(void *request, ucs_status_t status,
|
||||||
@ -57,11 +55,9 @@ void mca_pml_ucx_recv_completion(void *request, ucs_status_t status,
|
|||||||
(void*)req, ucs_status_string(status), info->sender_tag,
|
(void*)req, ucs_status_string(status), info->sender_tag,
|
||||||
info->length);
|
info->length);
|
||||||
|
|
||||||
OPAL_THREAD_LOCK(&ompi_request_lock);
|
|
||||||
mca_pml_ucx_set_recv_status(&req->req_status, status, info);
|
mca_pml_ucx_set_recv_status(&req->req_status, status, info);
|
||||||
PML_UCX_ASSERT( !(REQUEST_COMPLETE(req)));
|
PML_UCX_ASSERT( !(REQUEST_COMPLETE(req)));
|
||||||
ompi_request_complete(req, true);
|
ompi_request_complete(req, true);
|
||||||
OPAL_THREAD_UNLOCK(&ompi_request_lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mca_pml_ucx_persistent_request_detach(mca_pml_ucx_persistent_request_t *preq,
|
static void mca_pml_ucx_persistent_request_detach(mca_pml_ucx_persistent_request_t *preq,
|
||||||
@ -86,14 +82,12 @@ static inline void mca_pml_ucx_preq_completion(ompi_request_t *tmp_req)
|
|||||||
{
|
{
|
||||||
mca_pml_ucx_persistent_request_t *preq;
|
mca_pml_ucx_persistent_request_t *preq;
|
||||||
|
|
||||||
OPAL_THREAD_LOCK(&ompi_request_lock);
|
|
||||||
ompi_request_complete(tmp_req, false);
|
ompi_request_complete(tmp_req, false);
|
||||||
preq = (mca_pml_ucx_persistent_request_t*)tmp_req->req_complete_cb_data;
|
preq = (mca_pml_ucx_persistent_request_t*)tmp_req->req_complete_cb_data;
|
||||||
if (preq != NULL) {
|
if (preq != NULL) {
|
||||||
PML_UCX_ASSERT(preq->tmp_req != NULL);
|
PML_UCX_ASSERT(preq->tmp_req != NULL);
|
||||||
mca_pml_ucx_persistent_request_complete(preq, tmp_req);
|
mca_pml_ucx_persistent_request_complete(preq, tmp_req);
|
||||||
}
|
}
|
||||||
OPAL_THREAD_UNLOCK(&ompi_request_lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void mca_pml_ucx_psend_completion(void *request, ucs_status_t status)
|
void mca_pml_ucx_psend_completion(void *request, ucs_status_t status)
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user