Changeset 144170 in webkit


Ignore:
Timestamp:
Feb 27, 2013 4:09:18 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

REGRESSION(r137994): It made JSC tests hang and layout tests fail on ARM Thumb2 / Linux
https://bugs.webkit.org/show_bug.cgi?id=108632

Patch by Simon Hausmann <simon.hausmann@digia.com> on 2013-02-27
Reviewed by Csaba Osztrogonác.

It appears that mprotect() is very slow on ARM/Linux, so disable the
approach of unreserved mappings there and fall back to overcomitting
memory, based on Uli Schlachter's recommendation.

  • wtf/OSAllocatorPosix.cpp:

(WTF::OSAllocator::reserveUncommitted):
(WTF::OSAllocator::decommit):

Location:
trunk/Source/WTF
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r144082 r144170  
     12013-02-27  Simon Hausmann  <simon.hausmann@digia.com>
     2
     3        REGRESSION(r137994): It made JSC tests hang and layout tests fail on ARM Thumb2 / Linux
     4        https://bugs.webkit.org/show_bug.cgi?id=108632
     5
     6        Reviewed by Csaba Osztrogonác.
     7
     8        It appears that mprotect() is very slow on ARM/Linux, so disable the
     9        approach of unreserved mappings there and fall back to overcomitting
     10        memory, based on Uli Schlachter's recommendation.
     11
     12        * wtf/OSAllocatorPosix.cpp:
     13        (WTF::OSAllocator::reserveUncommitted):
     14        (WTF::OSAllocator::decommit):
     15
    1162013-02-26  Roger Fong  <roger_fong@apple.com>
    217
  • trunk/Source/WTF/wtf/OSAllocatorPosix.cpp

    r139974 r144170  
    4444    if (result == MAP_FAILED)
    4545        CRASH();
    46 #elif OS(LINUX)
     46#elif OS(LINUX) && !CPU(ARM)
    4747    UNUSED_PARAM(usage);
    4848    UNUSED_PARAM(writable);
     
    166166    // Use PROT_NONE and MAP_LAZY to decommit the pages.
    167167    mmap(address, bytes, PROT_NONE, MAP_FIXED | MAP_LAZY | MAP_PRIVATE | MAP_ANON, -1, 0);
    168 #elif OS(LINUX)
     168#elif OS(LINUX) && !CPU(ARM)
    169169    madvise(address, bytes, MADV_DONTNEED);
    170170    if (mprotect(address, bytes, PROT_NONE))
Note: See TracChangeset for help on using the changeset viewer.