Title: [215220] trunk/Source/WTF
Revision
215220
Author
[email protected]
Date
2017-04-11 01:27:28 -0700 (Tue, 11 Apr 2017)

Log Message

REGRESSION(r213645): It made JSC tests super slow and timeout on AArch64 Linux
https://bugs.webkit.org/show_bug.cgi?id=169510

Reviewed by Saam Barati.

Add the `volatile` qualifiers for ASM statements that set up ldxr and stxr
instruction calls when HAVE(LL_SC) is enabled for aarch64 platforms.

This avoids indefinite execution when running GCC-compiled JSC on Linux.
Specific bug or expected behavior that differs from Clang wasn't determined.

HAVE(LL_SC) is re-enabled on non-Darwin aarch64 platforms.

* wtf/Atomics.h:
* wtf/Platform.h:

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (215219 => 215220)


--- trunk/Source/WTF/ChangeLog	2017-04-11 06:18:55 UTC (rev 215219)
+++ trunk/Source/WTF/ChangeLog	2017-04-11 08:27:28 UTC (rev 215220)
@@ -1,3 +1,21 @@
+2017-04-11  Zan Dobersek  <[email protected]>
+
+        REGRESSION(r213645): It made JSC tests super slow and timeout on AArch64 Linux
+        https://bugs.webkit.org/show_bug.cgi?id=169510
+
+        Reviewed by Saam Barati.
+
+        Add the `volatile` qualifiers for ASM statements that set up ldxr and stxr
+        instruction calls when HAVE(LL_SC) is enabled for aarch64 platforms.
+
+        This avoids indefinite execution when running GCC-compiled JSC on Linux.
+        Specific bug or expected behavior that differs from Clang wasn't determined.
+
+        HAVE(LL_SC) is re-enabled on non-Darwin aarch64 platforms.
+
+        * wtf/Atomics.h:
+        * wtf/Platform.h:
+
 2017-04-10  Thorsten Glaser  <[email protected]>
 
         [GTK] Fix x32 build

Modified: trunk/Source/WTF/wtf/Atomics.h (215219 => 215220)


--- trunk/Source/WTF/wtf/Atomics.h	2017-04-11 06:18:55 UTC (rev 215219)
+++ trunk/Source/WTF/wtf/Atomics.h	2017-04-11 08:27:28 UTC (rev 215220)
@@ -190,7 +190,7 @@
                 : "r"(this) \
                 : "memory"); \
         } else { \
-            asm ( \
+            asm volatile ( \
                 "ldxr" suffix " %" modifier "0, [%1]" \
                 : "=r"(result) \
                 : "r"(this) \
@@ -210,7 +210,7 @@
                 : "r"(value), "r"(this) \
                 : "memory"); \
         } else { \
-            asm ( \
+            asm volatile ( \
                 "stxr" suffix " %w0, %" modifier "1, [%2]" \
                 : "=&r"(result) \
                 : "r"(value), "r"(this) \

Modified: trunk/Source/WTF/wtf/Platform.h (215219 => 215220)


--- trunk/Source/WTF/wtf/Platform.h	2017-04-11 06:18:55 UTC (rev 215219)
+++ trunk/Source/WTF/wtf/Platform.h	2017-04-11 08:27:28 UTC (rev 215220)
@@ -757,8 +757,7 @@
 #define ENABLE_CONCURRENT_JS 1
 #endif
 
-/* FIXME: Enable it on Linux once https://bugs.webkit.org/show_bug.cgi?id=169510 is fixed. */
-#if CPU(ARM64) && OS(DARWIN)
+#if CPU(ARM64)
 #define HAVE_LL_SC 1
 #endif // CPU(ARM64) && OS(DARWIN)
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to