Closed Bug 1738096 Opened 3 years ago Closed 3 years ago

Move GC slice budget scheduling decisions out of spidermonkey and feed semantically meaningful info to Gecko scheduler

Categories

(Core :: JavaScript: GC, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
98 Branch
Tracking Status
firefox98 --- fixed

People

(Reporter: sfink, Assigned: sfink)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

In bug 1672121, I added a callback to allow the embedding to set up slice budgets. But it's a weird setup where for Gecko-generated GCs:

  • Gecko computes a budget and passed it into SM
  • SM passes that time back to Gecko via a callback
  • Gecko creates a budget with that time
  • SM then runs the GC with that budget

For internally-generated GCs:

  • SM computes a budget based on whether we're in high frequency mode
  • SM passes that time back to Gecko via a callback
  • Gecko creates a budget with that time
  • SM then runs the GC with that budget

I would like to change it to:

  • (externally triggered) Gecko requests a GC
  • (internally triggered) SM requests a GC
  • SM invokes a callback with any relevant internal state
  • Gecko creates a budget based on that state and its own state
  • SM then runs the GC with that budget

I wanted to include this change in bug 1672121, but it's not just a matter of switching the callback from taking a millisecond value to taking a inHighFrequencyGCMode boolean, because sometimes a millisecond value is passed in (from Gecko in the first place). So I'm splitting it off into a separate bug.

Blocks: GC
Severity: -- → N/A
Priority: -- → P3
Assignee: nobody → sphink
Status: NEW → ASSIGNED
Pushed by sfink@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/eee1c8ccba69 Split out RunIncrementalGCSlice from GarbageCollectNow r=smaug https://hg.mozilla.org/integration/autoland/rev/00999caca48d Compute Gecko-triggered GC slice budget in Gecko and pass SliceBudget object all the way through r=jonco,smaug

Backed out 3 changesets (Bug 1738096, Bug 1747274) for causing build bustages on FuzzingFunctions.cpp.
Backout link
Push with failures
Failure Log

Flags: needinfo?(sphink)
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch
Flags: needinfo?(sphink)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: