Description[heap] Move to LAB-based allocation for newspace evacuation.
This CL prepare newspace evacuation for parallel execution wrt. to actual
allocations. The priority for allocations is:
* Try to allocate from LAB if objects are below kMaxLabObjectSize
* Allocate directly (synchronized) from newspace for larger objects.
* Fall back to old space allocation (which will be backed by a local compaction
space in future).
Semantical change: Previously we did fall back to regular new space promotion if
we are OOM in old space. With this CL we fall back to new space promotion, which
could fail because of fragmentation, again leading to an old space allocation
that finally bails into OOM.
Newspace evacuation is still single threaded and requires further changes to
allocation site tracking.
BUG=chromium:524425
LOG=N
Committed: https://crrev.com/a4e3a3b6a81ef39835c757145ff55299d713bcba
Cr-Commit-Position: refs/heads/master@{#32970}
Patch Set 1 #Patch Set 2 : Added cctests for LocalAllocationBuffer #
Total comments: 1
Patch Set 3 : Rebase #
Total comments: 6
Patch Set 4 : Addressed comments #Patch Set 5 : tests: Allocate LAB memory on heap since we require GetHeap() from filler objects for slow dchecks #Patch Set 6 : Switch to 4K LABs. Performance within noise on splay #Patch Set 7 : Added non-sticky and sticky bailout mode to old space for the new space allocation #
Total comments: 2
Patch Set 8 : Added comments describing LocalAllocationBuffer #
Messages
Total messages: 39 (24 generated)
|