Closed Bug 1703443 Opened 4 years ago Closed 3 years ago

Move MayGCNow to CCGCScheduler

Categories

(Core :: DOM: Core & HTML, task, P3)

task

Tracking

()

RESOLVED FIXED
91 Branch
Tracking Status
firefox91 --- fixed

People

(Reporter: pbone, Assigned: pbone)

References

Details

Attachments

(15 files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

After Bug 1629064 lands there's some refactoring we could do.

Severity: -- → N/A
Priority: -- → P3
Blocks: 1710552

Generally I want to move more of the scheduling state for GCs that's scattered throughout nsJSEnvironment.cpp into the CCGCScheduler class. This will avoid the kinds of edge cases that sfink found and wishes to fix in Bug 1711128.

Oh, and I may land these seperatly so that some of the weird regressions that are common when tweaking scheduling can be found a bit more easily.

Depends on: 1711128

Set the shutdown flag in both shutdown cases.

Depends on D118336

Depends on D118342

I was not supposed to commit this comment in an earlier change.

Depends on D118343

Depends on D118694

Pushed by pbone@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/742f1dc1612f pt 1. Tell the CCGCScheduler that we're shutting down r=smaug https://hg.mozilla.org/integration/autoland/rev/7e2c90da4fbb pt 2. Remove dead code r=smaug https://hg.mozilla.org/integration/autoland/rev/5a900829cbd1 pt 3. Move GC scheduling code into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/39bd5b2ec9e0 pt 4. Move the CC runner into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/11ccf870e643 pt 5. Move KillTimers code into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/341dd4d5b370 pt 6. Move RunNextCollectorTimer() into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/251a9a597c91 pt 7. Make GC/CC runners private to CCGCScheduler and move more code r=smaug https://hg.mozilla.org/integration/autoland/rev/f55e0c5e710f pt 8. Factor out some common code r=smaug https://hg.mozilla.org/integration/autoland/rev/8e6c4e4c5429 pt 9. Remove incorrect comment r=smaug https://hg.mozilla.org/integration/autoland/rev/c602e39f64fd pt 10. Make mMajorGCReason private r=smaug https://hg.mozilla.org/integration/autoland/rev/e8c6a26493b4 pt 11. Move the shrinking GC fields and logic into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/589311f587ce pt 11. Call KillAllTimersAndRunners from Shutdown() r=smaug https://hg.mozilla.org/integration/autoland/rev/5b2b19d5a0a2 pt 12. Move more CCGCScheduler implementation into the .cpp file r=smaug
Blocks: 1718184
Attachment #9228723 - Attachment description: Bug 1703443 - pt 11. Call KillAllTimersAndRunners from Shutdown() r=smaug → Bug 1703443 - pt 12. Call KillAllTimersAndRunners from Shutdown() r=smaug

By passing this as a parameter we can remove the duplicated Now() procedure.

Depends on D118697

Pass this value in also and remove the need for duplicate inlined
definitions between Firefox and gtest.

Depends on D119362

Attachment #9228724 - Attachment description: Bug 1703443 - pt 12. Move more CCGCScheduler implementation into the .cpp file r=smaug → Bug 1703443 - pt 15. Move more CCGCScheduler implementation into the .cpp file r=smaug
Pushed by pbone@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/71458c1f6a55 pt 1. Tell the CCGCScheduler that we're shutting down r=smaug https://hg.mozilla.org/integration/autoland/rev/63dcb96c1d77 pt 2. Remove dead code r=smaug https://hg.mozilla.org/integration/autoland/rev/0321a81ceec2 pt 3. Move GC scheduling code into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/aa62c19de048 pt 4. Move the CC runner into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/ca6e154e215b pt 5. Move KillTimers code into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/efd4b9f23fde pt 6. Move RunNextCollectorTimer() into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/3b70d65372e7 pt 7. Make GC/CC runners private to CCGCScheduler and move more code r=smaug https://hg.mozilla.org/integration/autoland/rev/02826afb7367 pt 8. Factor out some common code r=smaug https://hg.mozilla.org/integration/autoland/rev/cd1be6870ff7 pt 9. Remove incorrect comment r=smaug https://hg.mozilla.org/integration/autoland/rev/0768e9452197 pt 10. Make mMajorGCReason private r=smaug https://hg.mozilla.org/integration/autoland/rev/a17b19c72ec1 pt 11. Move the shrinking GC fields and logic into CCGCScheduler r=smaug https://hg.mozilla.org/integration/autoland/rev/6817f0dffd39 pt 12. Call KillAllTimersAndRunners from Shutdown() r=smaug https://hg.mozilla.org/integration/autoland/rev/657f50acf609 pt 13. Pass in the now timestamp as a parameter r=smaug https://hg.mozilla.org/integration/autoland/rev/08f3a7a19041 pt 14. Pass aSuspectedCCObjects into CC scheduling code r=smaug https://hg.mozilla.org/integration/autoland/rev/6536139589b1 pt 15. Move more CCGCScheduler implementation into the .cpp file r=smaug
Flags: needinfo?(pbone)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: