Open Bug 1423065 Opened 7 years ago Updated 2 years ago

Don't restart a GC if an incremental GC is sweeping

Categories

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

enhancement

Tracking

()

People

(Reporter: pbone, Unassigned)

References

Details

If an incremental collection is too slow (not recovering memory quickly enough) it may be aborted/siwtch to non-incremental mode.  I would like to investigate not doing this if the incremental GC is already in the sweeping phase.  If it's sweeping it may free the memory we need soon.  However it may not, it may free memory for different AllocKinds first.  This may require us to make other changes to how sweeping is done.
Depends on: 1417380
Whiteboard: [qf]
I think the answer to the problem of the GC going non-incremental is to increase the slice time as we approach the non-incremental threshold (in such a way that we never actually reach it).  Continuing incremental collection after we pass this threshold risks running out of memory if, as you say, we do not end up freeing memory.  Of course, we may be able to adjust the threshold itself to make going non-incremental less likely without substantially increasing the risk of OOM.
Priority: -- → P3
(In reply to Jon Coppeard (:jonco) from comment #1)
> I think the answer to the problem of the GC going non-incremental is to
> increase the slice time as we approach the non-incremental threshold (in
> such a way that we never actually reach it). 

I did something like that for the CC, and I think it has been effective.
I agree, I think that's a better (maybe more medium or long term) solution.

Is there a bug for it already?  I don't see one.
So, I fixed bug 1368972. Was that helpful enough here? (based on hangs data it did help with hangs at least, and sync GCs)
That should have done what comment 2 mentions about CC.
Taking this out from qf for now. Please add [qf] if this is still an issue.

Paul, do you think this is still an issue?
Flags: needinfo?(pbone)
Whiteboard: [qf]
See Also: → 1434542
I filed bug 1434542 for the GC version of this.
(In reply to Olli Pettay [:smaug] from comment #4)
> So, I fixed bug 1368972. Was that helpful enough here? (based on hangs data
> it did help with hangs at least, and sync GCs)
> That should have done what comment 2 mentions about CC.
> Taking this out from qf for now. Please add [qf] if this is still an issue.
> 
> Paul, do you think this is still an issue?

I'm not sure, I filed this bug when I notices some telemetry showing that we restart GCs when one is already running.  usually because we want to collect different zones.  I wanted to file this to avoid loosing that progress when the previous collection is nearly completed (is sweeping).

I think it's still worth trying, but it's not immediate, it doesn't need to be a QF thing.
Flags: needinfo?(pbone)
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.