[Openmp-commits] [openmp] r318527 - [OMPT] Fix inaccuracies in worksharing tests
Jonas Hahnfeld via Openmp-commits
openmp-commits at lists.llvm.org
Fri Nov 17 07:26:44 PST 2017
Author: hahnfeld
Date: Fri Nov 17 07:26:44 2017
New Revision: 318527
URL: http://llvm.org/viewvc/llvm-project?rev=318527&view=rev
Log:
[OMPT] Fix inaccuracies in worksharing tests
These tests were failing rarely on my MacBook when there was some
activity in the background. Read: one of a thousand executions?
* sections.c missed the sorting based on thread ids. This worked
as long as the master thread finished its section before the
worker thread started the second one but failed if the master
thread was put to sleep by the OS.
* The checks in single.c assumed that the master thread executes
the single region which works most of the time because it is
usually faster than the newly spawned worker thread.
Differential Revision: https://reviews.llvm.org/D39853
Modified:
openmp/trunk/runtime/test/ompt/worksharing/sections.c
openmp/trunk/runtime/test/ompt/worksharing/single.c
Modified: openmp/trunk/runtime/test/ompt/worksharing/sections.c
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/test/ompt/worksharing/sections.c?rev=318527&r1=318526&r2=318527&view=diff
==============================================================================
--- openmp/trunk/runtime/test/ompt/worksharing/sections.c (original)
+++ openmp/trunk/runtime/test/ompt/worksharing/sections.c Fri Nov 17 07:26:44 2017
@@ -1,4 +1,4 @@
-// RUN: %libomp-compile-and-run | FileCheck %s
+// RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s
// REQUIRES: ompt
// GCC generates code that does not distinguish between sections and loops
// XFAIL: gcc
@@ -31,6 +31,5 @@ int main()
// CHECK: {{^}}[[THREAD_ID:[0-9]+]]: ompt_event_sections_begin: parallel_id=[[PARALLEL_ID]], parent_task_id=[[TASK_ID:[0-9]+]], codeptr_ra=[[SECT_BEGIN]], count=2
// CHECK: {{^}}[[THREAD_ID]]: ompt_event_sections_end: parallel_id=[[PARALLEL_ID]], task_id={{[0-9]+}}, codeptr_ra=[[SECT_END]]
-
return 0;
}
Modified: openmp/trunk/runtime/test/ompt/worksharing/single.c
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/test/ompt/worksharing/single.c?rev=318527&r1=318526&r2=318527&view=diff
==============================================================================
--- openmp/trunk/runtime/test/ompt/worksharing/single.c (original)
+++ openmp/trunk/runtime/test/ompt/worksharing/single.c Fri Nov 17 07:26:44 2017
@@ -13,6 +13,7 @@ int main()
{
#pragma omp single
{
+ printf("%" PRIu64 ": in single\n", ompt_get_thread_data()->value);
x++;
}
}
@@ -24,13 +25,12 @@ int main()
// CHECK: 0: NULL_POINTER=[[NULL:.*$]]
- // CHECK: {{^}}[[THREAD_ID_1:[0-9]+]]: ompt_event_single_in_block_begin: parallel_id=[[PARALLEL_ID:[0-9]+]], parent_task_id=[[TASK_ID:[0-9]+]], codeptr_ra={{0x[0-f]+}}, count=1
- // CHECK: {{^}}[[THREAD_ID_1]]: ompt_event_single_in_block_end: parallel_id=[[PARALLEL_ID]], task_id=[[TASK_ID]], codeptr_ra={{0x[0-f]+}}, count=1
-
- // CHECK: {{^}}[[THREAD_ID_2:[0-9]+]]: ompt_event_single_others_begin: parallel_id=[[PARALLEL_ID:[0-9]+]], task_id=[[TASK_ID:[0-9]+]], codeptr_ra={{0x[0-f]+}}, count=1
- // CHECK: {{^}}[[THREAD_ID_2]]: ompt_event_single_others_end: parallel_id=[[PARALLEL_ID]], task_id=[[TASK_ID]], codeptr_ra={{0x[0-f]+}}, count=1
-
+ // CHECK-DAG: {{^}}[[THREAD_ID_1:[0-9]+]]: ompt_event_single_in_block_begin: parallel_id=[[PARALLEL_ID:[0-9]+]], parent_task_id=[[TASK_ID:[0-9]+]], codeptr_ra={{0x[0-f]+}}, count=1
+ // CHECK-DAG: {{^}}[[THREAD_ID_1]]: in single
+ // CHECK-DAG: {{^}}[[THREAD_ID_1]]: ompt_event_single_in_block_end: parallel_id=[[PARALLEL_ID]], task_id=[[TASK_ID]], codeptr_ra={{0x[0-f]+}}, count=1
+ // CHECK-DAG: {{^}}[[THREAD_ID_2:[0-9]+]]: ompt_event_single_others_begin: parallel_id=[[PARALLEL_ID:[0-9]+]], task_id=[[TASK_ID:[0-9]+]], codeptr_ra={{0x[0-f]+}}, count=1
+ // CHECK-DAG: {{^}}[[THREAD_ID_2]]: ompt_event_single_others_end: parallel_id=[[PARALLEL_ID]], task_id=[[TASK_ID]], codeptr_ra={{0x[0-f]+}}, count=1
return 0;
}
More information about the Openmp-commits
mailing list