-
Notifications
You must be signed in to change notification settings - Fork 78
Closed
Labels
A-interfaceArea: Interface/APIArea: Interface/APIC-enhancementCategory: EnhancementCategory: EnhancementP-normalPriority: Normal.Priority: Normal.
Description
MMTk currently triggers GCs based on a fixed heap size. We have plans to support dynamic heap size (e.g. #561), and we wlll have different GC triggering implementations in that case. Though we will implement different GC triggering policies in MMTk, it is possible that we expose this to the binding. For example, one of the GC triggering policies is to call into the binding and let the binding to decide whether to trigger a GC with some information from MMTk (e.g. reserved pages, free pages, etc). We should also allow VMs to decide whether to trigger GCs.
There are different motivations for this.
- this could be a replacement for Accounting VM-specific allocations #639, which helps account off-heap bytes for the VM. Having an API for the binding to tell us the inc/dec of the bytes is very much not desired. Instead, the binding could implement their own GC triggering and count their allocated bytes/pages.
- some runtimes have its own GC triggering. Like Julia, they trigger GC based on the allocation volume. To have a fair performance comparison with their stock GC, we would need either implement fix heap size for Julia, or allow Julia binding to implement their own GC triggering.
Metadata
Metadata
Assignees
Labels
A-interfaceArea: Interface/APIArea: Interface/APIC-enhancementCategory: EnhancementCategory: EnhancementP-normalPriority: Normal.Priority: Normal.