From 9d439664f074a690ff8c550f9ef489bd70520a0f Mon Sep 17 00:00:00 2001 From: Nathan Hjelm Date: Wed, 25 May 2016 15:42:53 -0600 Subject: [PATCH] pml/yalla: update for request changes This commit brings the pml/yalla component up to date with the request rework changes. Signed-off-by: Nathan Hjelm --- ompi/mca/pml/yalla/pml_yalla.c | 4 ---- ompi/mca/pml/yalla/pml_yalla_request.c | 10 +--------- ompi/mca/pml/yalla/pml_yalla_request.h | 4 ++-- 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/ompi/mca/pml/yalla/pml_yalla.c b/ompi/mca/pml/yalla/pml_yalla.c index f94475bf0a..02d2fe9670 100644 --- a/ompi/mca/pml/yalla/pml_yalla.c +++ b/ompi/mca/pml/yalla/pml_yalla.c @@ -475,10 +475,8 @@ int mca_pml_yalla_isend(const void *buf, size_t count, ompi_datatype_t *datatype if (mode == MCA_PML_BASE_SEND_BUFFERED) { rc = mca_pml_yalla_bsend(&sreq->mxm); - OPAL_THREAD_LOCK(&ompi_request_lock); sreq->super.ompi.req_status.MPI_ERROR = rc; ompi_request_complete(&sreq->super.ompi, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); *request = &sreq->super.ompi; return rc; } @@ -705,10 +703,8 @@ int mca_pml_yalla_start(size_t count, ompi_request_t** requests) if (req->flags & MCA_PML_YALLA_REQUEST_FLAG_BSEND) { PML_YALLA_VERBOSE(8, "start bsend request %p", (void *)sreq); rc = mca_pml_yalla_bsend(&sreq->mxm); - OPAL_THREAD_LOCK(&ompi_request_lock); sreq->super.ompi.req_status.MPI_ERROR = rc; ompi_request_complete(&sreq->super.ompi, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); if (OMPI_SUCCESS != rc) { return rc; } diff --git a/ompi/mca/pml/yalla/pml_yalla_request.c b/ompi/mca/pml/yalla/pml_yalla_request.c index eff05a57db..b8f5ccca05 100644 --- a/ompi/mca/pml/yalla/pml_yalla_request.c +++ b/ompi/mca/pml/yalla/pml_yalla_request.c @@ -49,11 +49,9 @@ static int mca_pml_yalla_send_request_free(ompi_request_t **request) PML_YALLA_VERBOSE(9, "free send request *%p=%p", (void *)request, (void *)*request); - OPAL_THREAD_LOCK(&ompi_request_lock); if (mca_pml_yalla_check_request_state(req)) { mca_pml_yalla_request_release(req, &ompi_pml_yalla.send_reqs); } - OPAL_THREAD_UNLOCK(&ompi_request_lock); *request = MPI_REQUEST_NULL; return OMPI_SUCCESS; @@ -64,7 +62,7 @@ static int mca_pml_yalla_send_request_cancel(ompi_request_t *request, int flag) mca_pml_yalla_send_request_t *sreq = (mca_pml_yalla_send_request_t*)request; mxm_error_t error; - if (request->req_complete) { + if (REQUEST_COMPLETE(request)) { /* * This might be a buffered send request which has completed anyway, so * we cannot cancel it anymore. Just hope for the best. @@ -90,11 +88,9 @@ static int mca_pml_yalla_recv_request_free(ompi_request_t **request) PML_YALLA_VERBOSE(9, "free receive request *%p=%p", (void *)request, (void *)*request); - OPAL_THREAD_LOCK(&ompi_request_lock); if (mca_pml_yalla_check_request_state(req)) { mca_pml_yalla_request_release(req, &ompi_pml_yalla.recv_reqs); } - OPAL_THREAD_UNLOCK(&ompi_request_lock); *request = MPI_REQUEST_NULL; return OMPI_SUCCESS; @@ -178,13 +174,11 @@ static void mca_pml_yalla_send_completion_cb(void *context) PML_YALLA_VERBOSE(8, "send request %p completed with status %s", (void *)sreq, mxm_error_string(sreq->mxm.base.error)); - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&sreq->super.ompi, true); if (sreq->super.flags & MCA_PML_YALLA_REQUEST_FLAG_FREE_CALLED) { PML_YALLA_VERBOSE(7, "release request %p because free was already called", (void *)sreq); mca_pml_yalla_request_release(&sreq->super, &ompi_pml_yalla.send_reqs); } - OPAL_THREAD_UNLOCK(&ompi_request_lock); } static void mca_pml_yalla_bsend_completion_cb(void *context) @@ -211,13 +205,11 @@ static void mca_pml_yalla_recv_completion_cb(void *context) rreq->mxm.tag, rreq->mxm.tag_mask, rreq->mxm.completion.actual_len); - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&rreq->super.ompi, true); if (rreq->super.flags & MCA_PML_YALLA_REQUEST_FLAG_FREE_CALLED) { PML_YALLA_VERBOSE(7, "release request %p because free was already called", (void *)rreq); mca_pml_yalla_request_release(&rreq->super, &ompi_pml_yalla.recv_reqs); } - OPAL_THREAD_UNLOCK(&ompi_request_lock); } static void mca_pml_yalla_send_request_construct(mca_pml_yalla_send_request_t* sreq) diff --git a/ompi/mca/pml/yalla/pml_yalla_request.h b/ompi/mca/pml/yalla/pml_yalla_request.h index 0ccc026c0c..545aa3ef5b 100644 --- a/ompi/mca/pml/yalla/pml_yalla_request.h +++ b/ompi/mca/pml/yalla/pml_yalla_request.h @@ -1,7 +1,7 @@ /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* * Copyright (C) Mellanox Technologies Ltd. 2001-2011. ALL RIGHTS RESERVED. - * Copyright (c) 2015 Los Alamos National Security, LLC. All rights + * Copyright (c) 2015-2016 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ * @@ -61,7 +61,7 @@ void mca_pml_yalla_init_reqs(void); #define PML_YALLA_RESET_OMPI_REQ(_ompi_req, _state) \ { \ (_ompi_req)->req_state = _state; \ - (_ompi_req)->req_complete = false; \ + (_ompi_req)->req_complete = REQUEST_PENDING; \ (_ompi_req)->req_status._cancelled = false; \ }