[release/9.0-staging] improve distribute_free_regions #115167
Merged
mangod9 merged 4 commits intorelease/9.0-stagingfrom May 6, 2025
Merged
[release/9.0-staging] improve distribute_free_regions #115167mangod9 merged 4 commits intorelease/9.0-stagingfrom
mangod9 merged 4 commits intorelease/9.0-stagingfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR backports changes to improve free-list management in the garbage collector. The key changes include updating the free_region_kind enum to better distinguish region types, adding new free-list management methods to gc_heap, and introducing separate age thresholds for basic, large, and huge regions.
Contributor
|
Tagging subscribers to this area: @dotnet/gc |
jeffschwMSFT
approved these changes
May 1, 2025
Member
jeffschwMSFT
left a comment
There was a problem hiding this comment.
lgtm. we will take for consideration in 9.0.x
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Port change for better free-list management. This is a back port of #109431
Customer Impact
Memory utilization regression as part of Regions Enablement. Reported by a customer here: #103582.
The fix is to improve distribute_free_regions where aged regions are added to decommit list to ultimately free.
Regression
Yes in memory utilization. For certain customers who were running with dense containers they would observe an OOM occasionally.
Testing
Verified with internal performance testing. Provided a private to the customer to try out and they confirmed their memory utilization improved after the fix.
Risk
Low, this only impacts how free regions are deallocated.