Closed Bug 513409 Opened 15 years ago Closed 13 years ago

GC arena allocation uses VirtualAlloc with 16 KiB allocations on x86/Win32

Categories

(Core :: JavaScript Engine, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: caustin, Unassigned)

Details

On 32-bit Windows the GC arena allocation code (jsgc.cpp) uses VirtualAlloc to allocate 16 KiB buffers.  However, VirtualAlloc has a 64K allocation granularity  http://blogs.msdn.com/oldnewthing/archive/2003/10/08/55239.aspx so you can only use 1/4 of your available address space for GC arenas.

I propose changing the "4" to "16" on line 1283 in jsgc.cpp: http://mxr.mozilla.org/mozilla-central/source/js/src/jsgc.cpp#1283
Bug 508707 is the real fix, but this would be a good spot-fix for the 1.9 branch branch.

/be
We have 64K (16 << 12) now. Igor, Gregor: is this bug fixed?

/be
Arenas no longer allocate, so this is certainly fixed.  Currently, the only allocation the GC makes is chunks -- 1MiB at a time on 1MiB aligned addresses.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.