-
Notifications
You must be signed in to change notification settings - Fork 10
Add pointer pinning to handle internal pointers. Use jl_active_task_stack
.
#217
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
Conversation
jl_active_task_stack
.
Updating `dev`. Merge with mmtk/julia#85. --------- Co-authored-by: Stephen Kell <srk31-github@srcf.ucam.org> Co-authored-by: Yi Lin <qinsoon@gmail.com> Co-authored-by: Luis Eduardo de Souza Amorim <eduardo@rat.moma>
julia-version |
mmtk/src/api.rs
Outdated
pub extern "C" fn mmtk_pin_pointer(addr: Address) -> bool { | ||
crate::early_return_for_non_moving_build!(false); | ||
if mmtk_object_is_managed_by_mmtk(addr.as_usize()) { | ||
if !crate::object_model::is_addr_in_immixspace(addr) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You only need to pin objects in the immixspace, correct? Wouldn't be enough to do a single check if crate::object_model::is_addr_in_immixspace(addr)
instead of having the check mmtk_object_is_managed_by_mmtk(addr.as_usize())
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. It should be fine. I made the change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
…stack`. (mmtk#217) This PR adds pinning that handles internal pointers. It also uses `jl_active_task_stack` for stack scanning instead of `jl_task_stack_buffer`.
This PR adds pinning that handles internal pointers. It also uses
jl_active_task_stack
for stack scanning instead ofjl_task_stack_buffer
.