[Openmp-commits] [PATCH] D77609: [OpenMP][WIP] Added the support for unshackled task in RTL

Shilei Tian via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Tue Aug 25 13:16:45 PDT 2020


tianshilei1992 added inline comments.


================
Comment at: openmp/runtime/src/kmp_tasking.cpp:965
+#endif
       __kmp_release_deps(gtid, taskdata);
     } else if (task_team && task_team->tt.tt_found_proxy_tasks) {
----------------
adurang wrote:
> Calling release_deps from the unshackle thread will result in the tasks being released from the graph to be queued in the unshackle thread and not the original team which is wrong. You'd need to use here the original gtid but I'm not sure of the consequences of 'impersonating' a thread in that code ptah.
I see the problem here. Will figure out a way to fix it.


================
Comment at: openmp/runtime/src/kmp_tasking.cpp:3771
+  if (task_team)
+    while (KMP_ATOMIC_LD_ACQ(&task_team->tt.tt_unfinished_unshackled_tasks))
+      ;
----------------
adurang wrote:
> It seems to me that this is forcing any taskwait (and possibly taskgroup) to wait for any outstanding "async target" that exist on the team irrespectively of being a part of that synchronization domain or not. 
Not any async target. Only those created in the team.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D77609/new/

https://reviews.llvm.org/D77609



More information about the Openmp-commits mailing list