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

Clear all side forwarding bits #974

Merged
merged 1 commit into from
Oct 12, 2023
Merged

Conversation

wks
Copy link
Collaborator

@wks wks commented Oct 10, 2023

This reverts an optimization which was intended to reduce the number of side forwarding bits cleared for ImmixSpace by clearing the forwarding bits metadata of defrag sources, only. This approach does not work for StickyImmix because it may move young objects, which is not "defrag".

Now ImmixSpace clears the on-the-side forwarding bits for all chunks just like how it clears the on-the-side marking bits.

This PR prefers correctness over performance, and may degrade the performance of VMs that use on-the-side forwarding bits. Currently it only affects the Ruby binding, but we plan to let the Ruby binding use in-header forwarding states, too. The performance of VMs that use in-header forwarding bits is not affected by this PR.

Fixes: #972

This reverts an optimization which was intended to reduce the number of
side forwarding bits cleared for ImmixSpace by clearing the forwarding
bits metadata of defrag sources, only.  This approach does not work for
StickyImmix because it may move young objects, which is not "defrag".

Now ImmixSpace clears the on-the-side forwarding bits for all chunks
just like how it clears the on-the-side marking bits.
@wks wks added PR-testing Run binding tests for the pull request (deprecated: use PR-extended-testing instead) and removed PR-testing Run binding tests for the pull request (deprecated: use PR-extended-testing instead) labels Oct 10, 2023
@wks wks requested a review from qinsoon October 11, 2023 08:14
Copy link
Member

@qinsoon qinsoon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@qinsoon qinsoon added this pull request to the merge queue Oct 12, 2023
Merged via the queue into mmtk:master with commit 2d7b569 Oct 12, 2023
24 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR-testing Run binding tests for the pull request (deprecated: use PR-extended-testing instead)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Side forwarding bits are not cleared properly
2 participants