-
Notifications
You must be signed in to change notification settings - Fork 5k
[release/9.0-staging] improve distribute_free_regions #115167
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
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.
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.
Tagging subscribers to this area: @dotnet/gc |
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.
LGTM!
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.
lgtm. we will take for consideration in 9.0.x
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.