v8/test/cctest/heap
mlippautz 8f0fd8c037 [heap] Parallel newspace evacuation, semispace copy, and compaction \o/
All parallelism can be turned off using --predictable, or --noparallel-compaction.

This patch completely parallelizes
 - semispace copy: from space -> to space (within newspace)
 - newspace evacuation: newspace -> oldspace
 - oldspace compaction: oldspace -> oldspace

Previously newspace has been handled sequentially (semispace copy, newspace
evacuation) before compacting oldspace in parallel. However, on a high level
there are no dependencies between those two actions, hence we parallelize them
altogether. We base the number of evacuation tasks on the overall set of
to-be-processed pages (newspace + oldspace compaction pages).

Some low-level details:
 - The hard cap on number of tasks has been lifted
 - We cache store buffer entries locally before merging them back into the global
   StoreBuffer in a finalization phase.
 - We cache AllocationSite operations locally before merging them back into the
   global pretenuring storage in a finalization phase.
 - AllocationSite might be compacted while they would be needed for newspace
   evacuation. To mitigate any problems we defer checking allocation sites for
   newspace till merging locally buffered data.

CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
BUG=chromium:524425
LOG=N
R=hpayer@chromium.org, ulan@chromium.org

Review URL: https://codereview.chromium.org/1577853007

Cr-Commit-Position: refs/heads/master@{#33523}
2016-01-26 15:08:31 +00:00
..
heap-tester.h Reland of "[cctest] Add tests for aborting compaction of pages" 2015-12-16 14:06:51 +00:00
test-alloc.cc [cctest] Move most heap related tests to test/cctest/heap and clean wrt IWYU 2015-12-09 11:26:15 +00:00
test-compaction.cc Reland of "[cctest] Add tests for aborting compaction of pages" 2015-12-16 14:06:51 +00:00
test-heap.cc [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ 2016-01-26 15:08:31 +00:00
test-incremental-marking.cc Implement tracing interface for v8 2015-12-17 18:48:35 +00:00
test-lab.cc [heap] Move to LAB-based allocation for newspace evacuation. 2015-12-18 18:33:50 +00:00
test-mark-compact.cc [cctest] Move most heap related tests to test/cctest/heap and clean wrt IWYU 2015-12-09 11:26:15 +00:00
test-spaces.cc [heap] Cleanup SemiSpace 2016-01-26 13:50:33 +00:00
utils-inl.h Reland of "[cctest] Add tests for aborting compaction of pages" 2015-12-16 14:06:51 +00:00