The default bug view has changed. See this FAQ.

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

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
8 years ago
6 years ago

People

(Reporter: Chad Austin, Unassigned)

Tracking

Trunk
x86
Windows XP
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

8 years ago
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
Last Resolved: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.