Closed
Bug 1005396
Opened 10 years ago
Closed 10 years ago
Only do ScanAndCollectWhitePhase at the start of a slice
Categories
(Core :: XPCOM, defect)
Core
XPCOM
Tracking
()
RESOLVED
FIXED
mozilla32
People
(Reporter: mccr8, Assigned: mccr8)
References
(Blocks 1 open bug)
Details
Attachments
(1 file, 1 obsolete file)
2.43 KB,
patch
|
smaug
:
review+
|
Details | Diff | Splinter Review |
One problem I noticed with ICC is that we can spend most of our 10ms slice, say 8ms, on MarkRoots, then we run ScanRoots() and CollectWhite(), which have to be run atomically, which can easily take 5ms or more, and we end up blowing our time budget. A simple way to deal with this issue is to just stop the current slice if we have run MarkRoots() to completion, and we're in at least the, say, third slice. The latter condition ensures that for short CCs we don't end up using multiple slices for no good reason. This could be made a little more sophisticated by seeing how much time we've actually run so far, and coming up with some heuristic for when we want to do this. If we're only 1ms into a slice, maybe we're okay with starting unlinking, but if we're 6ms, maybe not. Anyways, with this crude rule in place, and the Lazy Rule Destroyer (bug 861449) the max CC pause I'm seeing in an opt debug build is 11ms, and that's from a MarkRoots slice, so we could probably lower it further easily.
Assignee | ||
Comment 1•10 years ago
|
||
Assignee | ||
Comment 2•10 years ago
|
||
That needs to be fixed so that it properly deals with the unlimited budget case. Also, it looks like 11ms is about how long the Scan/CollectWhite slice takes, so lowering the budget doesn't reduce max pause any.
Assignee | ||
Comment 3•10 years ago
|
||
This would also be good to do for the Scan/CollectWhite slice, as graph cleanup can take a millisecond or two, so it might as well be shifted to the next slice. With the Lazy Content Destroyer and my patch to speed up ScanRoots(), this slice is only taking something like 4ms, so it is possible it won't blow the budget by itself, and we could end up blowing the budget with the cleanup phase. Of course, the cleanup phase could also be made incremental without too much trouble.
Assignee | ||
Comment 4•10 years ago
|
||
try run: https://tbpl.mozilla.org/?tree=Try&rev=6aa15826b120 I'll probably wait a few days to land this, to let the telemetry from bug 1005500 to settle down a bit. I decided to not bother doing the same thing for the transition from the Scan+CollectWhite phase to the Finish phase, because the Finish phase doesn't take more than a ms or two, and if we're doing a lot of stuff, we've probably exceeded the budget with Scan+Collect already so it doesn't matter.
Assignee | ||
Updated•10 years ago
|
Attachment #8421803 -
Flags: review?(bugs)
Assignee | ||
Updated•10 years ago
|
Attachment #8416800 -
Attachment is obsolete: true
Updated•10 years ago
|
Attachment #8421803 -
Flags: review?(bugs) → review+
Assignee | ||
Comment 5•10 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/00893ce2203c
https://hg.mozilla.org/mozilla-central/rev/00893ce2203c
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla32
You need to log in
before you can comment on or make changes to this bug.
Description
•