-
Notifications
You must be signed in to change notification settings - Fork 78
Open
Description
The current code base assumes stop-the-world GC. Thus in most cases, the terms 'pause', 'stop-the-world' (STW) and 'GC' are used interchangably.
With #1355 that introduces a concurrent GC plan, those terms becomes clearly different.
- 'pause' and 'stop-the-world' is the same, and their meanings is also the same as before -- all the mutators come to a stop for MMTK to do some work
- 'GC' is the process of identifying and reclaiming objects. Its start and the end is mostly defined by each plan. It may be one single pause (STW GC), or may consist of multiple pauses and happen concurrently with mutators. Also 'GC' is also a general term, such as gc work, gc scheduler, etc.
Examples of confusing cases of pause/stw/gc include:
Plan::end_of_gc
which really means the end of a pause- We need to differentiate the number of GCs and the number of pauses in our counters.
GlobalState::gc_status
andGlobalState::gc_start_time
.
We also want to avoid making too many breaking changes to the API. We can keep use GC
in the context that they won't make things confusing. For example, GCTrigger
, GCRequester
Metadata
Metadata
Assignees
Labels
No labels