Changeset 215220 in webkit


Ignore:
Timestamp:
Apr 11, 2017 1:27:28 AM (7 years ago)
Author:
zandobersek@gmail.com
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:
Location:
trunk/Source/WTF
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r215180 r215220  
     12017-04-11  Zan Dobersek  <zdobersek@igalia.com>
     2
     3        REGRESSION(r213645): It made JSC tests super slow and timeout on AArch64 Linux
     4        https://bugs.webkit.org/show_bug.cgi?id=169510
     5
     6        Reviewed by Saam Barati.
     7
     8        Add the `volatile` qualifiers for ASM statements that set up ldxr and stxr
     9        instruction calls when HAVE(LL_SC) is enabled for aarch64 platforms.
     10
     11        This avoids indefinite execution when running GCC-compiled JSC on Linux.
     12        Specific bug or expected behavior that differs from Clang wasn't determined.
     13
     14        HAVE(LL_SC) is re-enabled on non-Darwin aarch64 platforms.
     15
     16        * wtf/Atomics.h:
     17        * wtf/Platform.h:
     18
    1192017-04-10  Thorsten Glaser  <tg@mirbsd.de>
    220
  • trunk/Source/WTF/wtf/Atomics.h

    r214408 r215220  
    191191                : "memory"); \
    192192        } else { \
    193             asm ( \
     193            asm volatile ( \
    194194                "ldxr" suffix " %" modifier "0, [%1]" \
    195195                : "=r"(result) \
     
    211211                : "memory"); \
    212212        } else { \
    213             asm ( \
     213            asm volatile ( \
    214214                "stxr" suffix " %w0, %" modifier "1, [%2]" \
    215215                : "=&r"(result) \
  • trunk/Source/WTF/wtf/Platform.h

    r215180 r215220  
    758758#endif
    759759
    760 /* FIXME: Enable it on Linux once https://bugs.webkit.org/show_bug.cgi?id=169510 is fixed. */
    761 #if CPU(ARM64) && OS(DARWIN)
     760#if CPU(ARM64)
    762761#define HAVE_LL_SC 1
    763762#endif // CPU(ARM64) && OS(DARWIN)
Note: See TracChangeset for help on using the changeset viewer.