-
Notifications
You must be signed in to change notification settings - Fork 69
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
Precise heap traversal API #1186
Comments
The heap traversal API introduced in #1174 requires that the invocation of It is arguable that since mmtk-core can call
And the caller of the "precise" traversal API (say Implementation-wise, mmtk-core will need another "WorkerGoal::HeapTraversal" as the reason to stop the world, and we will need something like So I don't see the advantage of letting mmtk-core provide a heap-traversal API that stops/resumes mutators for the binding. The binding can stop/resume mutators (if it has multiple mutators at all) by itself and it's probably easier. |
I think we're bikeshedding the issue, personally. The idea is that this is an expensive operation and VM developers essentially need to be cognizant of that. We don't need a separate API to pause the mutators or even have a separate function for enumerating objects. Just need to have a separate GC "type" essentially wherein we only have one work packet in it which is a heap traversal work packet that will use the visitor provided in the |
#1174 introduced an API that allows heap traversal. The API will enumerate objects based on the VO bit at the time of enumeration. So if there is GC or allocation going on at the same time, we may see objects being reclaimed, or missing objects. We may want a version of the API that blocks allocation and GC so we can have a consistent heap snapshot.
The text was updated successfully, but these errors were encountered: