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

Issue 2964503005: Debug garbage collector does not correctly remove cross-gen garbage (Closed)

Created:
3 years, 5 months ago by danunez
Modified:
3 years, 5 months ago
Reviewers:
rmacnak
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Debug garbage collector does not correctly remove cross-gen garbage Modifies the debug garbage collector (CollectAllGarbage()) to correctly remove inter-generational garbage by evacuating all of new space. Adds tests to check if this issue has been correctly resolved. Updates the WeakProperty_PreserveCrossGen test to call for one new and one old space collection instead of CollectAllGarbage(). Otherwise, all weak properties are swept as garbage. DETAILS: ISSUE Specifically, the following arrangements in a heap resulted in garbage surviving a GC. - Dead object in old space pointing to dead object in new space results in the new space object surviving. - A cycle between two dead objects, one in each space, results in the cycle surviving until all objects are in the old space. R=rmacnak@google.com Committed: https://github.com/dart-lang/sdk/commit/98fe465b8580fe82027d474a04d338850962eb3f

Patch Set 1 #

Total comments: 8

Patch Set 2 : Formatting and rename EvacuateNewSpaceGarbage #

Unified diffs Side-by-side diffs Delta from patch set Stats (+268 lines, -13 lines) Patch
M runtime/vm/heap.h View 1 2 chunks +2 lines, -0 lines 0 comments Download
M runtime/vm/heap.cc View 1 3 chunks +22 lines, -2 lines 0 comments Download
M runtime/vm/heap_test.cc View 1 chunk +208 lines, -0 lines 0 comments Download
M runtime/vm/object_test.cc View 4 chunks +8 lines, -4 lines 0 comments Download
M runtime/vm/raw_object.h View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/scavenger.h View 2 chunks +3 lines, -5 lines 0 comments Download
M runtime/vm/scavenger.cc View 4 chunks +24 lines, -1 line 0 comments Download

Messages

Total messages: 5 (1 generated)
danunez
Ready for review.
3 years, 5 months ago (2017-06-30 21:15:13 UTC) #1
rmacnak
lgtm w/ comments https://codereview.chromium.org/2964503005/diff/1/runtime/vm/heap.cc File runtime/vm/heap.cc (right): https://codereview.chromium.org/2964503005/diff/1/runtime/vm/heap.cc#newcode366 runtime/vm/heap.cc:366: Two lines between functions (clang-format doesn't ...
3 years, 5 months ago (2017-06-30 22:24:57 UTC) #2
danunez
Got it. Will land after new patchset is uploaded. https://codereview.chromium.org/2964503005/diff/1/runtime/vm/heap.cc File runtime/vm/heap.cc (right): https://codereview.chromium.org/2964503005/diff/1/runtime/vm/heap.cc#newcode366 runtime/vm/heap.cc:366: ...
3 years, 5 months ago (2017-06-30 22:33:58 UTC) #3
danunez
3 years, 5 months ago (2017-06-30 23:03:53 UTC) #5
Message was sent while issue was closed.
Committed patchset #2 (id:20001) manually as
98fe465b8580fe82027d474a04d338850962eb3f (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698