-
Notifications
You must be signed in to change notification settings - Fork 75
Ensure log bits are correctly maintained #1169
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
Merged
Merged
Changes from 15 commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
e8502e3
Only reset unlog bits of objects in modbuf for nursery GCs
k-sareen 1ecc314
Fix typos
k-sareen 907cca5
cargo fmt
k-sareen 1238865
Fix typos
k-sareen 854dea6
Fix typo
k-sareen 2b32380
Address review
k-sareen 0c4cea3
Fix stale unlog bits for LOS and MarkSweepSpace objects
k-sareen 9dec2a3
cargo fmt
k-sareen bf5d1cb
Fix failing build
k-sareen e862642
cargo fmt
k-sareen 2884f6d
Merge branch 'master' into fix/modbuf-global-gc-bug
k-sareen 4c81ca3
Merge branch 'master' into fix/modbuf-global-gc-bug
k-sareen 78ffd7e
Merge branch 'master' into fix/modbuf-global-gc-bug
k-sareen f152bff
WIP: Address comments
k-sareen 59193a9
Cleanup and add more debug assertions
k-sareen ce9667c
Fix debug assertion
k-sareen a4dea71
Zero log bits for dead line
k-sareen fcaca46
Address Yi's comment about in-header log bit
k-sareen 9968150
Fix failing builds
k-sareen 2390cec
Fix failing build
k-sareen 85f915c
Merge branch 'master' into fix/modbuf-global-gc-bug
k-sareen 2e04346
Fix assertion
k-sareen cb98417
Remove incorrect assertion from StickyImmix
k-sareen 213f77e
Remove assertions
k-sareen ccd7d8a
Dump memory map for debugging
k-sareen 0fcda6f
Fix bug for GenImmix and remove unused field in `ImmixSpaceArgs`
k-sareen 3ece622
Revert "Zero log bits for dead line"
k-sareen f603c6b
Remove unused import
k-sareen aa232d3
Allow dead code for `PrepareBlockState`
k-sareen 0a3cac4
Clear log bits for CopySpace in release
k-sareen 899c83d
Merge branch 'master' into fix/modbuf-global-gc-bug
k-sareen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -283,6 +283,17 @@ impl<VM: VMBinding> VMSpace<VM> { | |
); | ||
debug_assert!(self.in_space(object)); | ||
if self.mark_state.test_and_mark::<VM>(object) { | ||
// Flip the per-object unlogged bits to "unlogged" state for objects inside the | ||
// bootimage | ||
#[cfg(feature = "set_unlog_bits_vm_space")] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Perhaps we can remove the conditional compile feature here since it is likely objects in the VM space will want to have the unlog bit set and the feature was more for initialization |
||
if self.common.needs_log_bit { | ||
VM::VMObjectModel::GLOBAL_LOG_BIT_SPEC.store_atomic::<VM, u8>( | ||
object, | ||
1, | ||
None, | ||
Ordering::SeqCst, | ||
); | ||
} | ||
queue.enqueue(object); | ||
} | ||
object | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
This assertion seems wrong. We are tracing a nursery object, why do we expect the log bit to tell us it is a mature object?
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.
Oh sorry. Yes. It should be
!
. Copy-pasted it incorrectly. Thanks