Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Issue 1640563004: Reland of "[heap] Parallel newspace evacuation, semispace copy, and compaction \o/" (Closed)

Created:
4 years, 11 months ago by Michael Lippautz
Modified:
4 years, 11 months ago
CC:
v8-reviews_googlegroups.com, Hannes Payer (out of office), ulan, Michael Achenbach, phoglund_chromium
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Reland of "[heap] Parallel newspace evacuation, semispace copy, and compaction \o/" This reverts commit 85ba94f28ce4b5d64e4c148efb1fee85bdb6579b. 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 Committed: https://crrev.com/004ce08da620a11bf5b7d7fd29df953041f31f5e Cr-Commit-Position: refs/heads/master@{#33552}

Patch Set 1 : Baseline #

Patch Set 2 : Convert bogus DCHECK into proper branch #

Unified diffs Side-by-side diffs Delta from patch set Stats (+479 lines, -319 lines) Patch
M BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M src/globals.h View 1 chunk +8 lines, -0 lines 0 comments Download
M src/heap/array-buffer-tracker.h View 2 chunks +2 lines, -0 lines 0 comments Download
M src/heap/array-buffer-tracker.cc View 2 chunks +3 lines, -0 lines 0 comments Download
M src/heap/heap.h View 5 chunks +9 lines, -6 lines 0 comments Download
M src/heap/heap.cc View 1 2 chunks +25 lines, -21 lines 0 comments Download
M src/heap/heap-inl.h View 3 chunks +47 lines, -34 lines 0 comments Download
M src/heap/mark-compact.h View 6 chunks +11 lines, -17 lines 0 comments Download
M src/heap/mark-compact.cc View 29 chunks +272 lines, -215 lines 0 comments Download
M src/heap/spaces.h View 2 chunks +1 line, -15 lines 0 comments Download
M src/heap/store-buffer.h View 2 chunks +33 lines, -4 lines 0 comments Download
M src/heap/store-buffer-inl.h View 2 chunks +16 lines, -6 lines 0 comments Download
M src/objects.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/objects.cc View 1 chunk +2 lines, -1 line 0 comments Download
M src/objects-inl.h View 1 chunk +3 lines, -0 lines 0 comments Download
A src/utils-inl.h View 1 chunk +37 lines, -0 lines 0 comments Download
M test/cctest/heap/test-heap.cc View 1 chunk +7 lines, -0 lines 0 comments Download
M tools/gyp/v8.gyp View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 19 (9 generated)
Michael Lippautz
ulan, hpayer: PTAL machenbach, phoglund: FYI
4 years, 11 months ago (2016-01-27 12:00:10 UTC) #4
Michael Lippautz
Forgot the message: I changed the bogus DCHECK into a branch. This is necessary because ...
4 years, 11 months ago (2016-01-27 12:00:59 UTC) #5
payer
LGTM
4 years, 11 months ago (2016-01-27 12:02:30 UTC) #7
ulan
lgtm
4 years, 11 months ago (2016-01-27 12:02:43 UTC) #8
Hannes Payer (out of office)
lgtm
4 years, 11 months ago (2016-01-27 12:02:55 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1640563004/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1640563004/20001
4 years, 11 months ago (2016-01-27 12:04:00 UTC) #11
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2016-01-27 12:29:12 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1640563004/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1640563004/20001
4 years, 11 months ago (2016-01-27 13:22:08 UTC) #15
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 11 months ago (2016-01-27 13:24:00 UTC) #17
commit-bot: I haz the power
4 years, 11 months ago (2016-01-27 13:25:05 UTC) #19
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/004ce08da620a11bf5b7d7fd29df953041f31f5e
Cr-Commit-Position: refs/heads/master@{#33552}

Powered by Google App Engine
This is Rietveld 408576698