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

Reply via email to