Skip to content

Commit

Permalink
[OpenMP] Fix for distributed barrier.
Browse files Browse the repository at this point in the history
Distributed barrier was found to cause hangs in some test cases. Found
that a section updating the barrier size was improperly shifted to a
different code section during patching.  Restored to original
location, all tests run to completion.

Differential Revision: https://reviews.llvm.org/D141618
  • Loading branch information
TerryLWilmarth committed Jan 20, 2023
1 parent fb9b3e9 commit 4c58e5a
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions openmp/runtime/src/kmp_runtime.cpp
Expand Up @@ -1011,6 +1011,12 @@ static void __kmp_fork_team_threads(kmp_root_t *root, kmp_team_t *team,
__kmp_partition_places(team);
}
#endif

if (team->t.t_nproc > 1 &&
__kmp_barrier_gather_pattern[bs_forkjoin_barrier] == bp_dist_bar) {
team->t.b->update_num_threads(team->t.t_nproc);
__kmp_add_threads_to_team(team, team->t.t_nproc);
}
}

if (__kmp_display_affinity && team->t.t_display_affinity != 1) {
Expand Down Expand Up @@ -2479,12 +2485,6 @@ void __kmp_join_call(ident_t *loc, int gtid
parent_team->t.t_stack_id = NULL;
}
#endif

if (team->t.t_nproc > 1 &&
__kmp_barrier_gather_pattern[bs_forkjoin_barrier] == bp_dist_bar) {
team->t.b->update_num_threads(team->t.t_nproc);
__kmp_add_threads_to_team(team, team->t.t_nproc);
}
}

KMP_MB();
Expand Down

0 comments on commit 4c58e5a

Please sign in to comment.