Module mmtk::scheduler

source ·
Expand description

A general scheduler implementation. MMTk uses it to schedule GC-related work.

Structs§

  • The thread local struct for the GC controller, the counterpart of GCWorker.
  • A GC worker. This part is privately owned by a worker thread. The GC controller also has an embedded GCWorker because it may also execute work packets.

Enums§

  • This enum defines all the work bucket types. The scheduler will instantiate a work bucket for each stage defined here.

Traits§

  • This defines a GC work packet which are assigned to the GCWorkers by the scheduler. Work packets carry payloads that indicate the work to be done. For example, a work packet may contain a pointer to a stack that must be scanned, or it may contain a large buffer of pointers that need to be traced, or it might contain a range of static variables to be scanned, etc. The size of the work packet will need to consider at least two points of tension: the work packet must be large enough to ensure that the costs of managing the work packets do not dominate, and the packet must be small enough that good load balancing is achieved.
  • Scan & update a list of object slots