Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create separate work packet types for object tracing from mod buf #1090

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

qinsoon
Copy link
Member

@qinsoon qinsoon commented Mar 13, 2024

Currently all the tracing in a nursery GC is done in GenNurseryProcessEdges, including objects reachable from root, and objects reachable from mod buf. This PR uses seperate work packet types for objects that are from mod buf. This helps us understand the nursery GC time better.

@wks
Copy link
Collaborator

wks commented Apr 1, 2024

Alternatively, we can add a field in struct GenNurseryProcessEdges to identify their sources. For example,

pub struct GenNurseryProcessEdges<VM: VMBinding, P: GenerationalPlanExt<VM> + PlanTraceObject<VM>> {
    plan: &'static P,
    base: ProcessEdgesBase<VM>,
    source: PacketSource,
}

enum PacketSource {
    Root,
    ModBuf,
    RegionModBuf,
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants