This is an archive of the discontinued LLVM Phabricator instance.

Task Team Synchronization Fix
ClosedPublic

Authored by jlpeyton on May 20 2015, 3:45 PM.

Details

Reviewers
tlwilmar
hfinkel
Summary

The fix syncs up the new threads to have the same task_state and task_team as the old threads. The master thread is skipped, because it shouldn't at this point have the team's task_team value yet -- it should still have parent_team's task_team. It gets pointed at the new team's task_team later, after __kmp_allocate_team returns, and the master has stored a memo of it's old task_state.

Diff Detail

Repository
rL LLVM

Event Timeline

jlpeyton updated this revision to Diff 26188.May 20 2015, 3:45 PM
jlpeyton retitled this revision from to Task Team Synchronization Fix.
jlpeyton updated this object.
jlpeyton edited the test plan for this revision. (Show Details)
jlpeyton added a reviewer: hfinkel.
jlpeyton set the repository for this revision to rL LLVM.
jlpeyton updated this object.
jlpeyton added subscribers: Unknown Object (MLST), Unknown Object (MLST), tlwilmar.
tlwilmar requested changes to this revision.May 21 2015, 8:45 AM
tlwilmar added a reviewer: tlwilmar.

See comment in code.

runtime/src/kmp_runtime.c
5065

This has a bug that was fixed later. Just take the two lines from the loop below, and add them to the loop above, after the call to __kmp_initialize_info. Then the comment and (now empty) loop below can be removed.

This revision now requires changes to proceed.May 21 2015, 8:45 AM
jlpeyton updated this revision to Diff 26251.May 21 2015, 10:12 AM
jlpeyton edited edge metadata.

Addressed Terry's comment.

tlwilmar accepted this revision.May 21 2015, 10:17 AM
tlwilmar edited edge metadata.

LGTM

This revision is now accepted and ready to land.May 21 2015, 10:17 AM
jlpeyton closed this revision.May 21 2015, 10:25 AM

Committed revision 237916.

I forgot to mention the Differential Revision in commit message.