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

Issue 1010363005: Filter invalid slots out from the SlotsBuffer after marking. (Closed)

Created:
5 years, 9 months ago by Igor Sheludko
Modified:
5 years, 9 months ago
CC:
v8-dev
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Filter invalid slots out from the SlotsBuffer after marking. There are two reasons that could cause invalid slots appearance in SlotsBuffer: 1) If GC trims "tail" of an array for which it has already recorded a slots and then migrate another object to the "tail". 2) Tagged slot could become a double slot after migrating of an object to another map with "shifted" fields (for example as a result of generalizing immutable data property to a data field). This CL also adds useful machinery that helps triggering incremental write barriers. BUG=chromium:454297 LOG=Y Committed: https://crrev.com/5c47c1c0d3e4a488f190c16a64ee02f5a14e6561 Cr-Commit-Position: refs/heads/master@{#27423}

Patch Set 1 : #

Patch Set 2 : Windows build fixed #

Total comments: 6

Patch Set 3 : Comments addressed #

Patch Set 4 : More comments addressed #

Patch Set 5 : Rebasing #

Patch Set 6 : Rebasing (argh!) #

Unified diffs Side-by-side diffs Delta from patch set Stats (+404 lines, -32 lines) Patch
M src/flag-definitions.h View 1 2 3 4 1 chunk +5 lines, -0 lines 0 comments Download
M src/heap/mark-compact.h View 1 2 3 4 5 3 chunks +14 lines, -3 lines 0 comments Download
M src/heap/mark-compact.cc View 1 2 3 4 5 9 chunks +157 lines, -22 lines 0 comments Download
M src/heap/spaces.h View 1 2 3 4 1 chunk +6 lines, -0 lines 0 comments Download
M src/heap/store-buffer.cc View 1 2 3 4 5 2 chunks +9 lines, -7 lines 0 comments Download
M test/cctest/test-unboxed-doubles.cc View 2 chunks +213 lines, -0 lines 0 comments Download

Messages

Total messages: 32 (16 generated)
Igor Sheludko
PTAL
5 years, 9 months ago (2015-03-24 12:34:13 UTC) #8
Hannes Payer (out of office)
https://codereview.chromium.org/1010363005/diff/140001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1010363005/diff/140001/src/heap/mark-compact.cc#newcode4544 src/heap/mark-compact.cc:4544: DCHECK_EQ(Smi::FromInt(0), g_smi_slot); SMI 0 will indicate an embedded object ...
5 years, 9 months ago (2015-03-24 14:47:06 UTC) #9
Hannes Payer (out of office)
Offline discussion: We can delete entries in a follow up cl if it turns out ...
5 years, 9 months ago (2015-03-24 15:02:52 UTC) #10
Igor Sheludko
https://codereview.chromium.org/1010363005/diff/140001/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1010363005/diff/140001/src/heap/mark-compact.cc#newcode4544 src/heap/mark-compact.cc:4544: DCHECK_EQ(Smi::FromInt(0), g_smi_slot); On 2015/03/24 14:47:05, Hannes Payer wrote: > ...
5 years, 9 months ago (2015-03-24 15:10:25 UTC) #11
Erik Corry
https://codereview.chromium.org/1010363005/diff/140001/src/heap/mark-compact.h File src/heap/mark-compact.h (right): https://codereview.chromium.org/1010363005/diff/140001/src/heap/mark-compact.h#newcode366 src/heap/mark-compact.h:366: static void RemoveInvalidSlots(Heap* heap, SlotsBuffer* buffer); It would be ...
5 years, 9 months ago (2015-03-24 15:11:45 UTC) #13
Igor Sheludko
https://codereview.chromium.org/1010363005/diff/140001/src/heap/mark-compact.h File src/heap/mark-compact.h (right): https://codereview.chromium.org/1010363005/diff/140001/src/heap/mark-compact.h#newcode366 src/heap/mark-compact.h:366: static void RemoveInvalidSlots(Heap* heap, SlotsBuffer* buffer); On 2015/03/24 15:11:45, ...
5 years, 9 months ago (2015-03-24 15:17:56 UTC) #14
Erik Corry
lgtm
5 years, 9 months ago (2015-03-24 15:34:02 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1010363005/180001
5 years, 9 months ago (2015-03-24 15:37:02 UTC) #18
commit-bot: I haz the power
Try jobs failed on following builders: v8_win_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_rel/builds/4346)
5 years, 9 months ago (2015-03-24 15:57:32 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1010363005/200001
5 years, 9 months ago (2015-03-24 16:35:10 UTC) #23
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux_arm64_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm64_rel/builds/4185)
5 years, 9 months ago (2015-03-24 16:36:32 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1010363005/220001
5 years, 9 months ago (2015-03-24 16:46:12 UTC) #28
commit-bot: I haz the power
Committed patchset #6 (id:220001)
5 years, 9 months ago (2015-03-24 17:07:37 UTC) #29
commit-bot: I haz the power
Patchset 6 (id:??) landed as https://crrev.com/5c47c1c0d3e4a488f190c16a64ee02f5a14e6561 Cr-Commit-Position: refs/heads/master@{#27423}
5 years, 9 months ago (2015-03-24 17:07:51 UTC) #30
Michael Achenbach
A revert of this CL (patchset #6 id:220001) has been created in https://codereview.chromium.org/1033453005/ by machenbach@chromium.org. ...
5 years, 9 months ago (2015-03-24 22:01:00 UTC) #31
Igor Sheludko
5 years, 8 months ago (2015-03-27 06:35:43 UTC) #32
Message was sent while issue was closed.
A revert of this CL (patchset #6 id:220001) has been created in
https://codereview.chromium.org/1033173002/ by ishell@chromium.org.

The reason for reverting is: Reverting risky GC changes that block v8 roll..

Powered by Google App Engine
This is Rietveld 408576698