This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "MPICH primary repository". The branch, master has been updated via 7ab7ca15500191aaf3e38295fceefccf254cbb0f (commit) via 19b6d44e9da545a9786a5e589a7d4ad18b31ff1d (commit) via dd87515e6b92b86c28c9c00c330e115a38856ab5 (commit) via 9ff3325d17463369b785341074aa1f319ab431bb (commit) from 8b3b041804d0b179db413a0c1047346b0b2a5cf7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.mpich.org/mpich.git/commitdiff/7ab7ca15500191aaf3e38295fceefccf25... commit 7ab7ca15500191aaf3e38295fceefccf254cbb0f Author: Xin Zhao <[email protected]> Date: Tue Aug 4 17:19:38 2015 -0500 Delete comment that makes no sense. Signed-off-by: Pavan Balaji <[email protected]> diff --git a/src/mpid/ch3/src/ch3u_rma_progress.c b/src/mpid/ch3/src/ch3u_rma_progress.c index 346c5ba..dc4324d 100644 --- a/src/mpid/ch3/src/ch3u_rma_progress.c +++ b/src/mpid/ch3/src/ch3u_rma_progress.c @@ -375,8 +375,6 @@ static inline int issue_ops_target(MPID_Win * win_ptr, MPIDI_RMA_Target_t * targ } if (op_completed == FALSE) { - /* Poke the progress engine when next_op_to_issue is not the current OP, in - * order to make sure the issuing function is re-entrant safe. */ if (win_ptr->active_req_cnt > MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD) { mpi_errno = poke_progress_engine(); if (mpi_errno != MPI_SUCCESS) http://git.mpich.org/mpich.git/commitdiff/19b6d44e9da545a9786a5e589a7d4ad18b... commit 19b6d44e9da545a9786a5e589a7d4ad18b31ff1d Author: Xin Zhao <[email protected]> Date: Tue Aug 4 17:04:25 2015 -0500 Make issue_ops_target not re-entrant. Function issue_ops_target should not be re-entered, otherwise it has the risk of causing too many re-entrances and using up function stack. Signed-off-by: Pavan Balaji <[email protected]> diff --git a/src/mpid/ch3/src/ch3u_rma_progress.c b/src/mpid/ch3/src/ch3u_rma_progress.c index 44eee91..346c5ba 100644 --- a/src/mpid/ch3/src/ch3u_rma_progress.c +++ b/src/mpid/ch3/src/ch3u_rma_progress.c @@ -258,6 +258,8 @@ static inline int check_and_switch_target_state(MPID_Win * win_ptr, MPIDI_RMA_Ta } +/* Note: we should prevent this function to be re-entrant. It has the risk of + * causing too many re-entrance and using up function stack. */ #undef FUNCNAME #define FUNCNAME issue_ops_target #undef FCNAME @@ -268,12 +270,19 @@ static inline int issue_ops_target(MPID_Win * win_ptr, MPIDI_RMA_Target_t * targ MPIDI_RMA_Op_t *curr_op = NULL; MPIDI_CH3_Pkt_flags_t flags; int first_op = 1, mpi_errno = MPI_SUCCESS; + static int fn_reentrance_check = FALSE; + + /* this function is not reentrant. if it is invoked in a + * reentrant manner, simply exit without doing anything. */ + if (fn_reentrance_check == TRUE) + goto fn_exit; + fn_reentrance_check = TRUE; (*made_progress) = 0; if (win_ptr->num_targets_with_pending_net_ops == 0 || target == NULL || target->pending_net_ops_list_head == NULL) - goto fn_exit; + goto finish_issue; /* Issue out operations in the list. */ curr_op = target->next_op_to_issue; @@ -379,6 +388,9 @@ static inline int issue_ops_target(MPID_Win * win_ptr, MPIDI_RMA_Target_t * targ } /* end of while loop */ + finish_issue: + fn_reentrance_check = FALSE; + fn_exit: return mpi_errno; fn_fail: http://git.mpich.org/mpich.git/commitdiff/dd87515e6b92b86c28c9c00c330e115a38... commit dd87515e6b92b86c28c9c00c330e115a38856ab5 Author: Xin Zhao <[email protected]> Date: Tue Aug 4 11:10:49 2015 -0500 Remove the restriction of FENCE/PSCW_GRANTED state in RMA progress. Originally we prevent RMA progress to deal with FENCE/PSCW_GRANTED windows, because the state switching is happening inside RMA progress and when state is switched to FENCE/PSCW_GRANTED, operations must be issued out immediately; however, now we remove the state switching from RMA progress and do it in request completion cb, in such case, we need to remove the restriction of FENCE/PSCW_GRANTED in RMA progress, otherwise operations cannot be issued out. Signed-off-by: Pavan Balaji <[email protected]> diff --git a/src/mpid/ch3/src/ch3u_rma_progress.c b/src/mpid/ch3/src/ch3u_rma_progress.c index 9d064e6..44eee91 100644 --- a/src/mpid/ch3/src/ch3u_rma_progress.c +++ b/src/mpid/ch3/src/ch3u_rma_progress.c @@ -797,9 +797,7 @@ int MPIDI_CH3I_RMA_Make_progress_global(int *made_progress) int temp_progress = 0; int is_able_to_issue = 0; - if (win_ptr->states.access_state == MPIDI_RMA_NONE || - win_ptr->states.access_state == MPIDI_RMA_FENCE_GRANTED || - win_ptr->states.access_state == MPIDI_RMA_PSCW_GRANTED) + if (win_ptr->states.access_state == MPIDI_RMA_NONE) continue; /* check and try to switch window state */ http://git.mpich.org/mpich.git/commitdiff/9ff3325d17463369b785341074aa1f319a... commit 9ff3325d17463369b785341074aa1f319ab431bb Author: Xin Zhao <[email protected]> Date: Tue Aug 4 14:01:46 2015 -0500 Delete unnecessary condition. target->next_op_to_issue pointer is assigned to curr_op->next before if branch, so it cannot equal to curr_op. Signed-off-by: Pavan Balaji <[email protected]> diff --git a/src/mpid/ch3/src/ch3u_rma_progress.c b/src/mpid/ch3/src/ch3u_rma_progress.c index 8efc6af..9d064e6 100644 --- a/src/mpid/ch3/src/ch3u_rma_progress.c +++ b/src/mpid/ch3/src/ch3u_rma_progress.c @@ -368,8 +368,7 @@ static inline int issue_ops_target(MPID_Win * win_ptr, MPIDI_RMA_Target_t * targ if (op_completed == FALSE) { /* Poke the progress engine when next_op_to_issue is not the current OP, in * order to make sure the issuing function is re-entrant safe. */ - if (target->next_op_to_issue != curr_op && - win_ptr->active_req_cnt > MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD) { + if (win_ptr->active_req_cnt > MPIR_CVAR_CH3_RMA_POKE_PROGRESS_REQ_THRESHOLD) { mpi_errno = poke_progress_engine(); if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno); ----------------------------------------------------------------------- Summary of changes: src/mpid/ch3/src/ch3u_rma_progress.c | 23 +++++++++++++++-------- 1 files changed, 15 insertions(+), 8 deletions(-) hooks/post-receive -- MPICH primary repository