Dear Matthew,

I was able to apply the patch set. I can build GCC for the sparc-rtems target 
with the patch set. So, for RTEMS we have then basically the old Linux barrier 
implementation as a hard copy. If we would like to go back to directly use the 
Linux implementation, we need support for the futex_waitv. In this case, we 
have to assess if this makes sense for the lower end SMP targets used by RTEMS 
applications.

I did run the following test program:

https://github.com/RTEMS/rtems/blob/main/testsuites/smptests/smpopenmp01/init.c

The test platform was:

https://www.gaisler.com/products/gr-cpci-gr740

Looks, good from my point of view. The difference in the output is:

diff -u openmp-gcc-7-gr740-before.txt openmp-gcc-7-gr740-after.txt 
--- openmp-gcc-7-gr740-before.txt       2025-12-05 04:21:09.098996657 +0100
+++ openmp-gcc-7-gr740-after.txt        2025-12-05 03:08:47.432125347 +0100
@@ -10,43 +10,43 @@
   {
     "num-threads": 1,
     "major-loop-count": 7,
-    "barrier-bench": 0.477087,
-    "parallel-bench": 1.796599,
-    "static-bench": 0.103448,
-    "dynamic-bench": 0.212967,
-    "guided-bench": 0.011304,
-    "runtime-bench": 0.240980,
-    "single-bench": 0.061993
+    "barrier-bench": 0.480769,
+    "parallel-bench": 1.809565,
+    "static-bench": 0.104044,
+    "dynamic-bench": 0.212121,
+    "guided-bench": 0.011265,
+    "runtime-bench": 0.240016,
+    "single-bench": 0.062307
   }, {
     "num-threads": 2,
     "major-loop-count": 7,
-    "barrier-bench": 0.547056,
-    "parallel-bench": 0.705842,
-    "static-bench": 0.043304,
-    "dynamic-bench": 0.123275,
-    "guided-bench": 0.005696,
-    "runtime-bench": 0.137279,
-    "single-bench": 0.071744
+    "barrier-bench": 0.553242,
+    "parallel-bench": 0.711961,
+    "static-bench": 0.043014,
+    "dynamic-bench": 0.122780,
+    "guided-bench": 0.005669,
+    "runtime-bench": 0.136729,
+    "single-bench": 0.071736
   }, {
     "num-threads": 3,
     "major-loop-count": 7,
-    "barrier-bench": 0.681504,
-    "parallel-bench": 0.798840,
-    "static-bench": 0.046850,
-    "dynamic-bench": 0.118318,
-    "guided-bench": 0.003853,
-    "runtime-bench": 0.103626,
-    "single-bench": 0.087014
+    "barrier-bench": 0.697402,
+    "parallel-bench": 0.796755,
+    "static-bench": 0.045589,
+    "dynamic-bench": 0.122541,
+    "guided-bench": 0.003835,
+    "runtime-bench": 0.103212,
+    "single-bench": 0.089041
   }, {
     "num-threads": 4,
     "major-loop-count": 7,
-    "barrier-bench": 0.939185,
-    "parallel-bench": 0.963152,
-    "static-bench": 0.053478,
-    "dynamic-bench": 0.123278,
-    "guided-bench": 0.002950,
-    "runtime-bench": 0.123275,
-    "single-bench": 0.114126
+    "barrier-bench": 0.988437,
+    "parallel-bench": 0.900906,
+    "static-bench": 0.050580,
+    "dynamic-bench": 0.122782,
+    "guided-bench": 0.002929,
+    "runtime-bench": 0.122778,
+    "single-bench": 0.117768
   }
 ]
 *** END OF JSON DATA ***

-- 
embedded brains GmbH & Co. KG
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: [email protected]
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/

Reply via email to