Updates:
Status: WorkingAsIntended
Comment #10 on issue 2473 by [email protected]:
http://www.chaostoperfection.com/ crashes in V8 initialization on 64-bit
platforms
http://code.google.com/p/v8/issues/detail?id=2473
We have not changed the reserved code range (512MB) for *years*, so I fail
to see any kind of regression here. What has changed is how the maximum
amount of actually committed executable memory is calculated, including a
change from jschuh to limit this to 256MB on x64 in r5799. ;-) Currently
the maximum size of committed executable memory depends on the
platform/architecture, for details see Heap::Heap().
We allocate chunks in 1MB steps from the reserved code range, and only
these chunks get RWX flags. Fiddling around with mmap on a smaller scale
totally kills any v8 performance.
As a last remark, don't forget that Chrome is the only client for v8 (see
e.g. node.js), so we shouldn't artificially restrict sizes further. I
totally fail to see why e.g. a reserved size of e.g. 128MB should be any
safer than our current 512MB.
The right way to approach this is, as you remarked, teaching the sandbox
the difference between reservation and actual allocation. My thoughts about
how to proceed are listed above as a), b) and c)...
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev