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

Issue 1325783007: Oilpan: A growing rate of Oilpan's heap and PartitionAlloc should be considered separately (Closed)

Created:
5 years, 3 months ago by haraken
Modified:
5 years, 3 months ago
Reviewers:
keishi, Yuta Kitamura
CC:
blink-reviews, oilpan-reviews, kouhei+heap_chromium.org, Mads Ager (chromium)
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Oilpan: A growing rate of Oilpan's heap and PartitionAlloc should be considered separately We're now hitting a bunch of out-of-virtual-address-spaces in various benchmarks (e.g., tiny-innerHTML-setter.html, PseudoClassSelectors.html etc) on oilpan Linux builds. The reason is that a GC is never scheduled during the benchmark because the current GC heuristic is improper. In short, we're hitting a scenario like this: - allocatedObjectSize = 3 GB - markedObjectSizeAtLastCompleteSweep = 5 MB - partitionAlloc = 1 GB This doesn't hit the GC condition because (3 GB + 5 MB + 1 GB) / (5 MB + 1 GB) is not large enough. (Note: Accurately speaking, the esimated size becomes smaller than (5 MB + 1 GB) as the number of collected persistent handles increases, but in those benchmarks persistent handles are not collected so aggressively.) This is clearly insane and we should have a way to trigger a GC if the allocatedObjectSize is X% larger than the markedObjectSizeAtLastCompleteSweep. With that motivation, this CL changes the GC condition as follows: - Trigger a GC if a growing rate of PartitionAlloc _or_ Oilpan's heap is larger than X%. BUG=474470 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=201890

Patch Set 1 #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+32 lines, -34 lines) Patch
M Source/platform/heap/ThreadState.h View 1 chunk +3 lines, -2 lines 0 comments Download
M Source/platform/heap/ThreadState.cpp View 1 chunk +29 lines, -32 lines 1 comment Download

Messages

Total messages: 7 (2 generated)
haraken
PTAL https://codereview.chromium.org/1325783007/diff/1/Source/platform/heap/ThreadState.cpp File Source/platform/heap/ThreadState.cpp (right): https://codereview.chromium.org/1325783007/diff/1/Source/platform/heap/ThreadState.cpp#newcode624 Source/platform/heap/ThreadState.cpp:624: return heapGrowingRate() >= heapGrowingRateThreshold || partitionAllocGrowingRate() >= heapGrowingRateThreshold; ...
5 years, 3 months ago (2015-09-08 00:41:02 UTC) #2
haraken
On 2015/09/08 00:41:02, haraken wrote: > PTAL > > https://codereview.chromium.org/1325783007/diff/1/Source/platform/heap/ThreadState.cpp > File Source/platform/heap/ThreadState.cpp (right): > ...
5 years, 3 months ago (2015-09-08 00:45:49 UTC) #3
keishi
LGTM
5 years, 3 months ago (2015-09-08 03:39:01 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1325783007/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1325783007/1
5 years, 3 months ago (2015-09-08 03:59:33 UTC) #6
commit-bot: I haz the power
5 years, 3 months ago (2015-09-08 04:03:55 UTC) #7
Message was sent while issue was closed.
Committed patchset #1 (id:1) as
https://src.chromium.org/viewvc/blink?view=rev&revision=201890

Powered by Google App Engine
This is Rietveld 408576698