forked from OSchip/llvm-project
[OpenMP] libomp: Add itt notifications to sync dependent tasks.
Intel Inspector uses itt notifications to analyze code execution, and it reports race conditions in dependent tasks. This patch fixes the issue notifying Inspector on tasks dependency synchronizations. Differential Revision: https://reviews.llvm.org/D123042
This commit is contained in:
parent
87e3646a1f
commit
52d0ef3c00
|
@ -45,6 +45,9 @@ static void __kmp_init_node(kmp_depnode_t *node) {
|
|||
#ifdef KMP_SUPPORT_GRAPH_OUTPUT
|
||||
node->dn.id = KMP_ATOMIC_INC(&kmp_node_id_seed);
|
||||
#endif
|
||||
#if USE_ITT_BUILD && USE_ITT_NOTIFY
|
||||
__itt_sync_create(node, "OMP task dep node", NULL, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline kmp_depnode_t *__kmp_node_ref(kmp_depnode_t *node) {
|
||||
|
|
|
@ -25,6 +25,9 @@ static inline void __kmp_node_deref(kmp_info_t *thread, kmp_depnode_t *node) {
|
|||
kmp_int32 n = KMP_ATOMIC_DEC(&node->dn.nrefs) - 1;
|
||||
KMP_DEBUG_ASSERT(n >= 0);
|
||||
if (n == 0) {
|
||||
#if USE_ITT_BUILD && USE_ITT_NOTIFY
|
||||
__itt_sync_destroy(node);
|
||||
#endif
|
||||
KMP_ASSERT(node->dn.nrefs == 0);
|
||||
#if USE_FAST_MEMORY
|
||||
__kmp_fast_free(thread, node);
|
||||
|
@ -125,11 +128,17 @@ static inline void __kmp_release_deps(kmp_int32 gtid, kmp_taskdata_t *task) {
|
|||
kmp_taskdata_t *next_taskdata;
|
||||
for (kmp_depnode_list_t *p = node->dn.successors; p; p = next) {
|
||||
kmp_depnode_t *successor = p->node;
|
||||
#if USE_ITT_BUILD && USE_ITT_NOTIFY
|
||||
__itt_sync_releasing(successor);
|
||||
#endif
|
||||
kmp_int32 npredecessors = KMP_ATOMIC_DEC(&successor->dn.npredecessors) - 1;
|
||||
|
||||
// successor task can be NULL for wait_depends or because deps are still
|
||||
// being processed
|
||||
if (npredecessors == 0) {
|
||||
#if USE_ITT_BUILD && USE_ITT_NOTIFY
|
||||
__itt_sync_acquired(successor);
|
||||
#endif
|
||||
KMP_MB();
|
||||
if (successor->dn.task) {
|
||||
KA_TRACE(20, ("__kmp_release_deps: T#%d successor %p of %p scheduled "
|
||||
|
|
Loading…
Reference in New Issue