Pause time of FinishIncrementalMark is not properly bounded

NEW
Unassigned

Status

P3
normal
9 years ago
8 years ago

People

(Reporter: lhansen, Unassigned)

Tracking

(Blocks: 2 bugs)

unspecified
Q1 12 - Brannan
Dependency tree / graph

Details

(Reporter)

Description

9 years ago
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.
(Reporter)

Updated

9 years ago
Assignee: lhansen → nobody
Target Milestone: --- → Future
(Reporter)

Updated

9 years ago
Status: ASSIGNED → NEW
(Reporter)

Comment 1

9 years ago
Fixes for finalization are a hot item for upcoming work.
Assignee: nobody → lhansen
Status: NEW → ASSIGNED
Priority: -- → P3
Target Milestone: Future → flash10.2
(Reporter)

Updated

9 years ago
Assignee: lhansen → nobody
Status: ASSIGNED → NEW
(Reporter)

Updated

8 years ago
Priority: P3 → --
Target Milestone: flash10.2 → Future
(Reporter)

Updated

8 years ago
Blocks: 604333
(Reporter)

Updated

8 years ago
Priority: -- → P3
Target Milestone: Future → Q1 12 - Brannan
You need to log in before you can comment on or make changes to this bug.