Bug 52517 - Only use moving memory model assumption in ExecutableAllocator::intializePageSize() for Symbian OS
Summary: Only use moving memory model assumption in ExecutableAllocator::intializePage...
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other Other
: P2 Normal
Assignee: Daniel Bates
Depends on:
Reported: 2011-01-15 12:24 PST by Daniel Bates
Modified: 2011-01-18 14:54 PST (History)
3 users (show)

See Also:

Patch (1.59 KB, patch)
2011-01-15 12:37 PST, Daniel Bates
barraclough: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Bates 2011-01-15 12:24:55 PST
We should strengthen the constraint in ExecutableAllocator::initializePageSize() such that we only use the moving memory model when compiling for Symbian OS on ARMv5 or lower architectures. Currently, we compile code that assumes the moving memory model for all ARMv5 or lower architectures.

As per section Chunk in <http://library.forum.nokia.com/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-35228542-8C95-4849-A73F-2B4F082F0C44/sdk/doc_source/guide/Base-subsystem-guide/e32/MemoryManagement/MemoryAllocationOverview.guide.html>:

On ARM processors up to and including those that support the ARMv5 architecture, the memory model used by Symbian OS is the moving memory model. To guarantee real-time behaviour using this model, each process is limited to a maximum of 16 chunks....

On ARM processors that support the ARMv6 architecture, the memory model used by Symbian OS is the multiple memory model. Using this model, there is no limit on the number of chunks per process.
Comment 1 Daniel Bates 2011-01-15 12:37:28 PST
Created attachment 79072 [details]
Comment 2 Daniel Bates 2011-01-15 12:44:34 PST
Additional remarks:

Prior to changeset 64105 <http://trac.webkit.org/changeset/64105> (bug #43009), the moving memory model code in ExecutableAllocator::initializePageSize() was behind an OS(SYMBIAN) guard when the code was in the file ExecutableAllocatorSymbian.cpp <http://trac.webkit.org/browser/trunk/JavaScriptCore/jit/ExecutableAllocatorSymbian.cpp?rev=64104#L25>. This file was removed in changeset 64105.
Comment 3 Daniel Bates 2011-01-18 14:54:17 PST
Committed r76068: <http://trac.webkit.org/changeset/76068>