Closed Bug 1575895 Opened 4 months ago Closed 4 months ago

Malloc allocations can trigger back-to-back GC slices

Categories

(Core :: JavaScript: GC, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla70
Tracking Status
firefox70 --- fixed

People

(Reporter: jonco, Assigned: jonco)

Details

Attachments

(1 file)

Right now we always trigger an incremental slice in GCRuntime::maybeMallocTriggerZoneGC if we've exceeded the incremental threshold. This is different to what happens in maybeAllocTriggerZoneGC where we have a delay between triggering slices implemented with gcDelayBytes.

We don't check this threshold on every malloc allocation, but this could still result in us doing back-to-back slices, effectively a non-incremental GC.

At some point we can think about triggering incremental slices here the way we do for the GC heap allocations but for now it's simplest to just not trigger any more slices if we're already allocating.

Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7578290bed2a
Don't start GC slices due to malloc allocation if we're already collecting the zone r=sfink
Status: NEW → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla70
You need to log in before you can comment on or make changes to this bug.