-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Make sure we at least sweep the loh even when we wanted to compact it #74626
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
|
Tagging subscribers to this area: @dotnet/gc Issue DetailsFor regions, it is possible for This is causing a problem for LOH compaction because we are expecting the LOH is already swept at this point or it will be compacted in the compact_phase, but neither will happen if This fix will make sure the LOH is swept if that happened. This is important to make sure the mark bits are reset for LOH.
|
|
we shouldn't be reverting the loh_compacted_p here because we would have already done the work of planning loh earlier which would be pointless to do. I think we should move the code that does I noticed this suspicious line -
this should be done for all heaps, not just heap0. I think when I wrote this code I meant just for the decay to be reduced on heap0 but used on all heaps. but that's just not worth it. we might as well make |
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.
accidently approved it... was meant for another PR of yours
7639dbd to
137c82c
Compare
137c82c to
173a63d
Compare
173a63d to
5427f49
Compare
|
Move the deletion of the pin queue later as well |
5427f49 to
21c9835
Compare
For regions, it is possible for
special_sweep_pto override the behavior ofis_compaction_mandatorywhen all heaps are joining to make the decision whether to sweep or to compact.This is causing a problem for LOH compaction because we are expecting the LOH is already swept at this point or it will be compacted in the
compact_phase, but neither will happen ifloh_compacted_pistruebut got overridden byspecial_sweep_p.This fix will make sure the LOH is swept if that happened. This is important to make sure the mark bits are reset for LOH.