From 47b992e3cf71d77ba7c9032fa1fc4a4066a5490f Mon Sep 17 00:00:00 2001 From: Matias A Cabral Date: Thu, 9 Feb 2017 16:44:43 -0800 Subject: [PATCH 1/2] Completely removed ompi_request_lock and ompi_request_cond as we dont need them anymore. Signed-off-by: Thananon Patinyasakdikul --- ompi/mca/coll/libnbc/coll_libnbc_component.c | 2 -- ompi/mca/coll/portals4/coll_portals4_allreduce.c | 3 --- ompi/mca/coll/portals4/coll_portals4_barrier.c | 2 -- ompi/mca/coll/portals4/coll_portals4_bcast.c | 2 -- ompi/mca/coll/portals4/coll_portals4_gather.c | 4 ---- ompi/mca/coll/portals4/coll_portals4_reduce.c | 2 -- ompi/mca/coll/portals4/coll_portals4_scatter.c | 2 -- ompi/mca/osc/portals4/osc_portals4_component.c | 2 -- ompi/mca/pml/cm/pml_cm_recvreq.c | 3 --- ompi/mca/pml/cm/pml_cm_sendreq.c | 3 --- ompi/request/request.c | 6 ------ ompi/request/request.h | 2 -- 12 files changed, 33 deletions(-) diff --git a/ompi/mca/coll/libnbc/coll_libnbc_component.c b/ompi/mca/coll/libnbc/coll_libnbc_component.c index 57454d1a003..1ac5b0b943e 100644 --- a/ompi/mca/coll/libnbc/coll_libnbc_component.c +++ b/ompi/mca/coll/libnbc/coll_libnbc_component.c @@ -286,9 +286,7 @@ ompi_coll_libnbc_progress(void) else { request->super.req_status.MPI_ERROR = res; } - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&request->super, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); } OPAL_THREAD_LOCK(&mca_coll_libnbc_component.lock); } diff --git a/ompi/mca/coll/portals4/coll_portals4_allreduce.c b/ompi/mca/coll/portals4/coll_portals4_allreduce.c index 61f140cd0f1..e80c3b49857 100644 --- a/ompi/mca/coll/portals4/coll_portals4_allreduce.c +++ b/ompi/mca/coll/portals4/coll_portals4_allreduce.c @@ -417,10 +417,7 @@ int ompi_coll_portals4_iallreduce_intra_fini(struct ompi_coll_portals4_request_t *request) { allreduce_kary_tree_bottom(request); - - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&request->super, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); return (OMPI_SUCCESS); } diff --git a/ompi/mca/coll/portals4/coll_portals4_barrier.c b/ompi/mca/coll/portals4/coll_portals4_barrier.c index 9e18dd811a4..c3bc6a460d7 100644 --- a/ompi/mca/coll/portals4/coll_portals4_barrier.c +++ b/ompi/mca/coll/portals4/coll_portals4_barrier.c @@ -311,9 +311,7 @@ ompi_coll_portals4_ibarrier_intra_fini(ompi_coll_portals4_request_t *request) return OMPI_ERROR; } - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&request->super, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); return OMPI_SUCCESS; } diff --git a/ompi/mca/coll/portals4/coll_portals4_bcast.c b/ompi/mca/coll/portals4/coll_portals4_bcast.c index 3356bc05a4e..11132f6ce4c 100644 --- a/ompi/mca/coll/portals4/coll_portals4_bcast.c +++ b/ompi/mca/coll/portals4/coll_portals4_bcast.c @@ -941,9 +941,7 @@ ompi_coll_portals4_ibcast_intra_fini(ompi_coll_portals4_request_t *request) post_bcast_data(request); - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&request->super, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); opal_output_verbose(10, ompi_coll_base_framework.framework_output, "ibcast_intra_fini"); return (OMPI_SUCCESS); diff --git a/ompi/mca/coll/portals4/coll_portals4_gather.c b/ompi/mca/coll/portals4/coll_portals4_gather.c index 9ac88f2b5f8..45ff4c07728 100644 --- a/ompi/mca/coll/portals4/coll_portals4_gather.c +++ b/ompi/mca/coll/portals4/coll_portals4_gather.c @@ -1132,9 +1132,7 @@ ompi_coll_portals4_gather_intra_binomial_bottom(struct ompi_communicator_t *comm request->super.req_status.MPI_ERROR = OMPI_SUCCESS; - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&request->super, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); OPAL_OUTPUT_VERBOSE((10, ompi_coll_base_framework.framework_output, "coll:portals4:gather_intra_binomial_bottom exit rank %d", request->u.gather.my_rank)); @@ -1195,9 +1193,7 @@ ompi_coll_portals4_gather_intra_linear_bottom(struct ompi_communicator_t *comm, request->super.req_status.MPI_ERROR = OMPI_SUCCESS; - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&request->super, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); OPAL_OUTPUT_VERBOSE((10, ompi_coll_base_framework.framework_output, "coll:portals4:gather_intra_linear_bottom exit rank %d", request->u.gather.my_rank)); diff --git a/ompi/mca/coll/portals4/coll_portals4_reduce.c b/ompi/mca/coll/portals4/coll_portals4_reduce.c index 88a14648805..5f41e75655e 100644 --- a/ompi/mca/coll/portals4/coll_portals4_reduce.c +++ b/ompi/mca/coll/portals4/coll_portals4_reduce.c @@ -441,9 +441,7 @@ ompi_coll_portals4_ireduce_intra_fini(ompi_coll_portals4_request_t *request) if (OMPI_SUCCESS != ret) return ret; - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&request->super, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); return (OMPI_SUCCESS); } diff --git a/ompi/mca/coll/portals4/coll_portals4_scatter.c b/ompi/mca/coll/portals4/coll_portals4_scatter.c index fd1d134690a..d1cfbbaa0d2 100644 --- a/ompi/mca/coll/portals4/coll_portals4_scatter.c +++ b/ompi/mca/coll/portals4/coll_portals4_scatter.c @@ -637,9 +637,7 @@ ompi_coll_portals4_scatter_intra_linear_bottom(struct ompi_communicator_t *comm, request->super.req_status.MPI_ERROR = OMPI_SUCCESS; - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&request->super, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); OPAL_OUTPUT_VERBOSE((10, ompi_coll_base_framework.framework_output, "coll:portals4:scatter_intra_linear_bottom exit rank %d", request->u.scatter.my_rank)); diff --git a/ompi/mca/osc/portals4/osc_portals4_component.c b/ompi/mca/osc/portals4/osc_portals4_component.c index 889b20e8255..b96a1eeb9e9 100644 --- a/ompi/mca/osc/portals4/osc_portals4_component.c +++ b/ompi/mca/osc/portals4/osc_portals4_component.c @@ -229,9 +229,7 @@ progress_callback(void) opal_atomic_add_size_t(&req->super.req_status._ucount, ev.mlength); ops = opal_atomic_add_32(&req->ops_committed, 1); if (ops == req->ops_expected) { - OPAL_THREAD_LOCK(&ompi_request_lock); ompi_request_complete(&req->super, true); - OPAL_THREAD_UNLOCK(&ompi_request_lock); } } } diff --git a/ompi/mca/pml/cm/pml_cm_recvreq.c b/ompi/mca/pml/cm/pml_cm_recvreq.c index 92b7ba63793..707666c6aac 100644 --- a/ompi/mca/pml/cm/pml_cm_recvreq.c +++ b/ompi/mca/pml/cm/pml_cm_recvreq.c @@ -28,7 +28,6 @@ mca_pml_cm_recv_request_free(struct ompi_request_t** request) assert( false == recvreq->req_free_called ); - OPAL_THREAD_LOCK(&ompi_request_lock); recvreq->req_free_called = true; if( true == recvreq->req_pml_complete ) { if( MCA_PML_CM_REQUEST_RECV_THIN == recvreq->req_pml_type ) { @@ -38,8 +37,6 @@ mca_pml_cm_recv_request_free(struct ompi_request_t** request) } } - OPAL_THREAD_UNLOCK(&ompi_request_lock); - *request = MPI_REQUEST_NULL; return OMPI_SUCCESS; } diff --git a/ompi/mca/pml/cm/pml_cm_sendreq.c b/ompi/mca/pml/cm/pml_cm_sendreq.c index e7944cbdb61..8d0f3bad90f 100644 --- a/ompi/mca/pml/cm/pml_cm_sendreq.c +++ b/ompi/mca/pml/cm/pml_cm_sendreq.c @@ -35,7 +35,6 @@ mca_pml_cm_send_request_free(struct ompi_request_t** request) mca_pml_cm_send_request_t* sendreq = *(mca_pml_cm_send_request_t**)request; assert( false == sendreq->req_base.req_free_called ); - OPAL_THREAD_LOCK(&ompi_request_lock); sendreq->req_base.req_free_called = true; if( true == sendreq->req_base.req_pml_complete ) { if( MCA_PML_CM_REQUEST_SEND_THIN == sendreq->req_base.req_pml_type ) { @@ -45,8 +44,6 @@ mca_pml_cm_send_request_free(struct ompi_request_t** request) } } - OPAL_THREAD_UNLOCK(&ompi_request_lock); - *request = MPI_REQUEST_NULL; return OMPI_SUCCESS; } diff --git a/ompi/request/request.c b/ompi/request/request.c index 57bc6bb4a3d..dc8752a5b2d 100644 --- a/ompi/request/request.c +++ b/ompi/request/request.c @@ -36,8 +36,6 @@ opal_pointer_array_t ompi_request_f_to_c_table = {{0}}; size_t ompi_request_waiting = 0; size_t ompi_request_completed = 0; size_t ompi_request_failed = 0; -opal_recursive_mutex_t ompi_request_lock = {{0}}; -opal_condition_t ompi_request_cond = {{0}}; ompi_predefined_request_t ompi_request_null = {{{{{0}}}}}; ompi_predefined_request_t *ompi_request_null_addr = &ompi_request_null; ompi_request_t ompi_request_empty = {{{{0}}}}; @@ -109,8 +107,6 @@ OBJ_CLASS_INSTANCE( int ompi_request_init(void) { - OBJ_CONSTRUCT(&ompi_request_lock, opal_recursive_mutex_t); - OBJ_CONSTRUCT(&ompi_request_cond, opal_condition_t); OBJ_CONSTRUCT(&ompi_request_null, ompi_request_t); OBJ_CONSTRUCT(&ompi_request_f_to_c_table, opal_pointer_array_t); @@ -186,8 +182,6 @@ int ompi_request_finalize(void) OBJ_DESTRUCT( &ompi_request_null.request ); OMPI_REQUEST_FINI( &ompi_request_empty ); OBJ_DESTRUCT( &ompi_request_empty ); - OBJ_DESTRUCT( &ompi_request_cond ); - OBJ_DESTRUCT( &ompi_request_lock ); OBJ_DESTRUCT( &ompi_request_f_to_c_table ); return OMPI_SUCCESS; } diff --git a/ompi/request/request.h b/ompi/request/request.h index aaac0df912b..45af6642a7b 100644 --- a/ompi/request/request.h +++ b/ompi/request/request.h @@ -320,8 +320,6 @@ OMPI_DECLSPEC extern size_t ompi_request_waiting; OMPI_DECLSPEC extern size_t ompi_request_completed; OMPI_DECLSPEC extern size_t ompi_request_failed; OMPI_DECLSPEC extern int32_t ompi_request_poll; -OMPI_DECLSPEC extern opal_recursive_mutex_t ompi_request_lock; -OMPI_DECLSPEC extern opal_condition_t ompi_request_cond; OMPI_DECLSPEC extern ompi_predefined_request_t ompi_request_null; OMPI_DECLSPEC extern ompi_predefined_request_t *ompi_request_null_addr; OMPI_DECLSPEC extern ompi_request_t ompi_request_empty; From 681594b5920e22e16db49ab9644b77a42c03e059 Mon Sep 17 00:00:00 2001 From: Matias A Cabral Date: Thu, 9 Feb 2017 16:45:36 -0800 Subject: [PATCH 2/2] Removed the unused ompi_request_[waiting, completed, failed, poll] variable. Signed-off-by: Thananon Patinyasakdikul --- ompi/debuggers/ompi_mpihandles_dll.c | 4 ---- ompi/debuggers/ompi_msgq_dll.c | 4 ---- ompi/request/request.c | 3 --- ompi/request/request.h | 8 -------- 4 files changed, 19 deletions(-) diff --git a/ompi/debuggers/ompi_mpihandles_dll.c b/ompi/debuggers/ompi_mpihandles_dll.c index a3ea1471071..05a20e113f6 100644 --- a/ompi/debuggers/ompi_mpihandles_dll.c +++ b/ompi/debuggers/ompi_mpihandles_dll.c @@ -86,10 +86,6 @@ struct mpidbg_name_map_t *mpidbg_status_name_map = NULL; * cases like the above with compilers that require the symbol (like * Sun Studio) we add in these definitions here. */ -size_t ompi_request_completed; -opal_condition_t ompi_request_cond; -size_t ompi_request_waiting; -opal_mutex_t ompi_request_lock; opal_mutex_t opal_event_lock; int opal_progress_spin_count; bool opal_mutex_check_locks; diff --git a/ompi/debuggers/ompi_msgq_dll.c b/ompi/debuggers/ompi_msgq_dll.c index 378d02b5c55..130bf3f90a3 100644 --- a/ompi/debuggers/ompi_msgq_dll.c +++ b/ompi/debuggers/ompi_msgq_dll.c @@ -1066,10 +1066,6 @@ static void dump_request( mqs_taddr_t current_item, mqs_pending_operation *res ) printf( "+===============================================+\n\n" ); } -/** - * TODO: ompi_request_completed can be used to detect any changes in the request handles. - */ - /** * Handle the send queue as well as the receive queue. The unexpected queue * is a whole different story ... diff --git a/ompi/request/request.c b/ompi/request/request.c index dc8752a5b2d..8a73624ba36 100644 --- a/ompi/request/request.c +++ b/ompi/request/request.c @@ -33,9 +33,6 @@ #include "ompi/constants.h" opal_pointer_array_t ompi_request_f_to_c_table = {{0}}; -size_t ompi_request_waiting = 0; -size_t ompi_request_completed = 0; -size_t ompi_request_failed = 0; ompi_predefined_request_t ompi_request_null = {{{{{0}}}}}; ompi_predefined_request_t *ompi_request_null_addr = &ompi_request_null; ompi_request_t ompi_request_empty = {{{{0}}}}; diff --git a/ompi/request/request.h b/ompi/request/request.h index 45af6642a7b..9587486ec8c 100644 --- a/ompi/request/request.h +++ b/ompi/request/request.h @@ -316,10 +316,6 @@ typedef struct ompi_request_fns_t { * Globals used for tracking requests and request completion. */ OMPI_DECLSPEC extern opal_pointer_array_t ompi_request_f_to_c_table; -OMPI_DECLSPEC extern size_t ompi_request_waiting; -OMPI_DECLSPEC extern size_t ompi_request_completed; -OMPI_DECLSPEC extern size_t ompi_request_failed; -OMPI_DECLSPEC extern int32_t ompi_request_poll; OMPI_DECLSPEC extern ompi_predefined_request_t ompi_request_null; OMPI_DECLSPEC extern ompi_predefined_request_t *ompi_request_null_addr; OMPI_DECLSPEC extern ompi_request_t ompi_request_empty; @@ -431,10 +427,6 @@ static inline int ompi_request_complete(ompi_request_t* request, bool with_signa } } else request->req_complete = REQUEST_COMPLETED; - - if( OPAL_UNLIKELY(MPI_SUCCESS != request->req_status.MPI_ERROR) ) { - ompi_request_failed++; - } } return OMPI_SUCCESS;