Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mvapich2 for openSUSE:Factory 
checked in at 2023-11-10 12:33:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mvapich2 (Old)
 and      /work/SRC/openSUSE:Factory/.mvapich2.new.17445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mvapich2"

Fri Nov 10 12:33:50 2023 rev:36 rq:1124847 version:2.3.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/mvapich2/mvapich2.changes        2023-08-08 
15:55:00.961023924 +0200
+++ /work/SRC/openSUSE:Factory/.mvapich2.new.17445/mvapich2.changes     
2023-11-10 12:37:41.334183571 +0100
@@ -1,0 +2,6 @@
+Thu Oct 26 10:42:07 UTC 2023 - Nicolas Morey <nicolas.mo...@suse.com>
+
+- Add mvapich2-openpa-add-memory-barriers.patch to fix testsuite issue
+  on pcc64 (bsc#1216610, bsc#1216612)
+
+-------------------------------------------------------------------

New:
----
  mvapich2-openpa-add-memory-barriers.patch

BETA DEBUG BEGIN:
  New:
- Add mvapich2-openpa-add-memory-barriers.patch to fix testsuite issue
  on pcc64 (bsc#1216610, bsc#1216612)
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mvapich2.spec ++++++
--- /var/tmp/diff_new_pack.mxMqQR/_old  2023-11-10 12:37:42.138213329 +0100
+++ /var/tmp/diff_new_pack.mxMqQR/_new  2023-11-10 12:37:42.138213329 +0100
@@ -214,6 +214,7 @@
 Patch4:         reproducible.patch
 Patch5:         pass-correct-size-to-snprintf.patch
 Patch6:         mvapich2-allow-building-with-external-hwloc.patch
+Patch7:         mvapich2-openpa-add-memory-barriers.patch
 ## Armv7 specific patches
 # PATCH-FIX-UPSTREAM 0001-Drop-real128.patch 
(https://github.com/pmodels/mpich/issues/4005)
 Patch50:        0001-Drop-real128.patch
@@ -352,6 +353,7 @@
 %patch4
 %patch5 -p1
 %patch6
+%patch7
 
 # Only apply these patches on Armv7
 %ifarch armv7hl

++++++ mvapich2-openpa-add-memory-barriers.patch ++++++
commit 68c4106b2a8d8fdb9ba4e2bab90e90e3392b6bbd
Author: Nicolas Morey <nmo...@suse.com>
Date:   Thu Oct 26 12:39:20 2023 +0200

    mvapich2: openpa: add memory barriers
    
    Backport from openPA:
    commit 28d602b620b5d7ec8ca1a7f3ad8ab27d439b1751
    Author: Neil Fortner <nfort...@hdfgroup.org>
    Date:   Wed Dec 19 13:14:57 2012 -0600
    
        Add more memory barriers to LL/SC ABA tests.  This should fix the 
recent errors
        on POWER7.
    
        Reviewed by goodell.
    
    Signed-off-by: Nicolas Morey <nmo...@suse.com>

diff --git src/openpa/test/test_primitives.c src/openpa/test/test_primitives.c
index a83b95e00578..4533c643d581 100644
--- src/openpa/test/test_primitives.c
+++ src/openpa/test/test_primitives.c
@@ -3783,12 +3783,18 @@ static int 
threaded_llsc_int_aba_helper_0(llsc_int_aba_t *udata)
             nerrors++;
         } /* end if */
 
+        /* Make sure shared_val is initialized before passing point 0 */
+        OPA_write_barrier();
+
         /* Point 0 */
         OPA_store_int(&udata->pass_point_0, 1);
 
         /* Wait until thread 1 passes point 1 */
         while(!OPA_load_int(&udata->pass_point_1));
 
+        /* Make sure that change_val is loaded after passing point 1 */
+        OPA_read_barrier();
+
         /* Store conditional 1 to the shared value */
         if(OPA_SC_int(&udata->shared_val, 1)) {
             /* SC succeeded, make sure that the shared value was not changed by
@@ -3870,12 +3876,12 @@ static void *threaded_llsc_int_aba_helper_1(void 
*_udata)
              * of this test */
             OPA_store_int(&udata->shared_val, 1);
             OPA_store_int(&udata->shared_val, 0);
-
-            /* Write barrier to make sure the shared value was actually updated
-             * before we mark point 1 as passed */
-            OPA_write_barrier();
         } /* end if */
 
+        /* Write barrier to make sure the shared_val (if appropriate) and
+         * change_val are actually updated before we mark point 1 as passed */
+        OPA_write_barrier();
+
         /* Point 1 */
         OPA_store_int(&udata->pass_point_1, 1);
 
@@ -4012,12 +4018,18 @@ static int 
threaded_llsc_ptr_aba_helper_0(llsc_ptr_aba_t *udata)
             nerrors++;
         } /* end if */
 
+        /* Make sure shared_val is initialized before passing point 0 */
+        OPA_write_barrier();
+
         /* Point 0 */
         OPA_store_int(&udata->pass_point_0, 1);
 
         /* Wait until thread 1 passes point 1 */
         while(!OPA_load_int(&udata->pass_point_1));
 
+        /* Make sure that change_val is loaded after passing point 1 */
+        OPA_read_barrier();
+
         /* Store conditional 1 to the shared value */
         if(OPA_SC_ptr(&udata->shared_val, (void *) ((int *) 0 + 1))) {
             /* SC succeeded, make sure that the shared value was not changed by
@@ -4099,12 +4111,12 @@ static void *threaded_llsc_ptr_aba_helper_1(void 
*_udata)
              * of this test */
             OPA_store_ptr(&udata->shared_val, (void *) ((int *) 0 + 1));
             OPA_store_ptr(&udata->shared_val, (void *) 0);
-
-            /* Write barrier to make sure the shared value was actually updated
-             * before we mark point 1 as passed */
-            OPA_write_barrier();
         } /* end if */
 
+        /* Write barrier to make sure the shared_val (if appropriate) and
+         * change_val are actually updated before we mark point 1 as passed */
+        OPA_write_barrier();
+
         /* Point 1 */
         OPA_store_int(&udata->pass_point_1, 1);
 

Reply via email to