]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Revert changes to acc_prof-init-1.c and acc_prof-parallel-1.c
authorKwok Cheung Yeung <kcy@codesourcery.com>
Fri, 24 Jun 2022 20:29:28 +0000 (21:29 +0100)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Tue, 28 Jun 2022 20:57:35 +0000 (13:57 -0700)
There is an interaction between the commits "OpenACC profiling-interface
fixes for asynchronous operations" and "[OpenACC] Clarify sequencing of
'async' data copying vs. profiling events in
'libgomp.oacc-c-c++-common/acc_prof-{init,parallel}-1.c'", leading to an
execution test failure and hang in these two tests.

This reverts changes to the tests made by the second patch, allowing the
tests to pass.

2022-05-30  Kwok Cheung Yeung  <kcy@codesourcery.com>

libgomp/
* testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c
(cb_compute_construct_end): Remove COPYIN block.
(main): Remove assignments to acc_async.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c
(cb_enter_data_end): Remove COPYIN block.
(main): Remove assignment to acc_async.

libgomp/ChangeLog.omp
libgomp/testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c
libgomp/testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c

index 3e1ed8efed6d68f8b35ebbfe1253ee38eec5a402..0dbc13381b61a3ba11b51126b530f00da1b7f8bd 100644 (file)
@@ -1,3 +1,12 @@
+2022-05-30  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c
+       (cb_compute_construct_end): Remove COPYIN block.
+       (main): Remove assignments to acc_async.
+       * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c
+       (cb_enter_data_end): Remove COPYIN block.
+       (main): Remove assignment to acc_async.
+
 2022-05-31  Kwok Cheung Yeung  <kcy@codesourcery.com>
 
        * testsuite/libgomp.oacc-c-c++-common/pr85381-3.c (foo_v, foo_w):
index a33fac7556cb02d6a33ee8038b4e00e9b2ad42b9..6bbe99df1ff89a5c6f66997148513312b6037d24 100644 (file)
@@ -208,21 +208,6 @@ static void cb_compute_construct_end (acc_prof_info *prof_info, acc_event_info *
 
   assert (state == 11
          || state == 111);
-#if defined COPYIN
-  /* In an 'async' setting, this event may be triggered before actual 'async'
-     data copying has completed.  Given that 'state' appears in 'COPYIN', we
-     first have to synchronize (that is, let the 'async' 'COPYIN' read the
-     current 'state' value)...  */
-  if (acc_async != acc_async_sync)
-    {
-      /* "We're not yet accounting for the fact that _OpenACC events may occur
-        during event processing_"; temporarily disable to avoid deadlock.  */
-      unreg (acc_ev_none, NULL, acc_toggle_per_thread);
-      acc_wait (acc_async);
-      reg (acc_ev_none, NULL, acc_toggle_per_thread);
-    }
-  /* ... before modifying it in the following.  */
-#endif
   STATE_OP (state, ++);
 
   assert (tool_info != NULL);
@@ -295,7 +280,6 @@ int main()
     {
       state_init = state;
     }
-    acc_async = acc_async_sync;
 #pragma acc wait
     assert (state_init == 11);
   }
@@ -322,7 +306,6 @@ int main()
     {
       state_init = state;
     }
-    acc_async = acc_async_sync;
 #pragma acc wait
     assert (state_init == 111);
   }
index 663f7f724d5bd082c8342d4f8c807221dd1f5cb0..9a542b56fe5232fb165c07921b5b755b0cf2ce9c 100644 (file)
@@ -248,25 +248,6 @@ static void cb_enter_data_end (acc_prof_info *prof_info, acc_event_info *event_i
 
   assert (state == 4
          || state == 104);
-#if defined COPYIN
-  /* Conceptually, 'acc_ev_enter_data_end' marks the end of data copying,
-     before 'acc_ev_enqueue_launch_start' marks invoking the compute region.
-     That's the 'state_init = state;' intended to be captured in the compute
-     regions.  */
-  /* In an 'async' setting, this event may be triggered before actual 'async'
-     data copying has completed.  Given that 'state' appears in 'COPYIN', we
-     first have to synchronize (that is, let the 'async' 'COPYIN' read the
-     current 'state' value)...  */
-  if (acc_async != acc_async_sync)
-    {
-      /* "We're not yet accounting for the fact that _OpenACC events may occur
-        during event processing_"; temporarily disable to avoid deadlock.  */
-      unreg (acc_ev_none, NULL, acc_toggle_per_thread);
-      acc_wait (acc_async);
-      reg (acc_ev_none, NULL, acc_toggle_per_thread);
-    }
-  /* ... before modifying it in the following.  */
-#endif
   STATE_OP (state, ++);
 
   assert (tool_info != NULL);
@@ -698,7 +679,6 @@ int main()
 
       state_init = state;
     }
-    acc_async = acc_async_sync;
 #pragma acc wait
     assert (state_init == 104);
   }