Closed Bug 514488 Opened 15 years ago Closed 6 years ago

Pause time of FinishIncrementalMark is not properly bounded

Categories

(Tamarin Graveyard :: Garbage Collection (mmGC), defect, P3)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX
Q1 12 - Brannan

People

(Reporter: lhansen, Unassigned)

References

Details

There are several problems here: - the time of the final root and stack scan is bounded only by heap size - the time of running finalizers is not bounded at all (user code runs) - sweep time is not bounded, but this does not appear to be a problem in practice It's hard to fix this because we must run the final root and stack scan synchronously to ensure GC termination; if we have a budget for that and can exhaust it we will have to start over again during the next cycle. This can be fixed but requires fancy handling of the stack - don't rescan portions that haven't changed, for example - and probably write barriers on roots, which is going to be a hard sell for now. Another problem is that with reference counting and having users' destructors responsible for the final decrementing of references during destruction, we must run destructors synchronously during GC or risk not reclaiming memory. The correct fix here is to abandon RC or at least decouple user destructors from GC destructors - in practice few objects will have user destructors, and those that don't can be destroyed synchronously, while destruction of the rest can be delayed.
Assignee: lhansen → nobody
Target Milestone: --- → Future
Status: ASSIGNED → NEW
Fixes for finalization are a hot item for upcoming work.
Assignee: nobody → lhansen
Status: NEW → ASSIGNED
Priority: -- → P3
Target Milestone: Future → flash10.2
Assignee: lhansen → nobody
Status: ASSIGNED → NEW
Priority: P3 → --
Target Milestone: flash10.2 → Future
Blocks: 604333
Priority: -- → P3
Target Milestone: Future → Q1 12 - Brannan
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.