Mark-compact GC: update STACK_TOP when growing mark stack#2673
Merged
mergify[bot] merged 4 commits intomasterfrom Jul 26, 2021
Merged
Mark-compact GC: update STACK_TOP when growing mark stack#2673mergify[bot] merged 4 commits intomasterfrom
mergify[bot] merged 4 commits intomasterfrom
Conversation
Merged
|
This PR does not affect the produced WebAssembly code. |
Contributor
Author
Yes, updated the PR description. |
crusso
reviewed
Jul 26, 2021
| @@ -13,13 +13,13 @@ pub const INIT_STACK_SIZE: Words<u32> = Words(64); | |||
| static mut STACK_BLOB_PTR: *mut Blob = null_mut(); | |||
Contributor
There was a problem hiding this comment.
Keeping that one private deliberately?
Contributor
Author
There was a problem hiding this comment.
It's not used in tests so no need to make it pub. Should I make it pub for consistency?
crusso
approved these changes
Jul 26, 2021
Contributor
crusso
left a comment
There was a problem hiding this comment.
Still LGTM.
Does this explain the weird GC cliff Andreas observed in your earlier PR? Probably not, but might be worth checking
Contributor
Author
This fixes that, yes. |
Contributor
|
Yeah, sorry, that was actually clear from your updated PR description ;-> |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
When growing mark stack we should update
STACK_TOPotherwise subsequentpushes will think that the stack is full and call
grow_stackagain.Discovered while debugging strange allocation pattern in #2650 with the
compacting GC. It turns out once the mark stack is full ever subsequent push
(until stack is smaller than the initial size again) doubles the stack size,
causing redundant allocations.
Regression test added.