Skip to content
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

Fix an issue with sysconf returning the wrong last level cache values on Linux running on certain AMD Processors #109567

Merged
merged 2 commits into from
Nov 26, 2024

Conversation

mrsharm
Copy link
Member

@mrsharm mrsharm commented Nov 5, 2024

.NET 8 port of: #108492 - full details about the problem, solution and how to detect this issue can be found there.

Customer Impact

  • Customer reported
  • Found internally

Certain AMD Processor SKUs suffer from the issue where the output of sysconf, the mechanism to discern the last level cache size, returns the value of the last level cache of the host rather than the VM or container. An example of the processor is: AMD EPYC 7763.

The impact of a larger than expected last level cache size is a larger Gen0 budget and thereby, a larger memory footprint albeit, fewer GCs than if the last level cache size is smaller.

We have provided a new configuration: DOTNET_GCCacheSizeFromSysConf that can be set to 1 to revert to the old logic.

Regression

  • Yes
  • No

The regression in behavior relative to other processors which don't exhibit this behavior.

Testing

Tested with an internal customer.

Risk

High risk as this affects the behavior of how the min and max gen0 budget is calculated for Unix based runtimes that has a significant effect on how the GC behaves.

Copy link
Contributor

Tagging subscribers to this area: @dotnet/gc
See info in area-owners.md if you want to be subscribed.

@mrsharm mrsharm changed the title [WIP] Last Level Cache fix - .NET 8. Fix an issue with sysconf returning the wrong last level cache values on Linux running on certain AMD Processors Nov 8, 2024
@mrsharm mrsharm marked this pull request as ready for review November 8, 2024 22:17
@jeffschwMSFT jeffschwMSFT added the Servicing-consider Issue for next servicing release review label Nov 13, 2024
@jeffschwMSFT jeffschwMSFT added this to the 8.0.x milestone Nov 13, 2024
Copy link
Member

@jeffschwMSFT jeffschwMSFT left a 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 8.0.x

@jeffschwMSFT jeffschwMSFT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Nov 25, 2024
@jeffschwMSFT jeffschwMSFT modified the milestones: 8.0.x, 8.0.12 Nov 25, 2024
@mrsharm mrsharm merged commit 3989aac into dotnet:release/8.0-staging Nov 26, 2024
112 of 121 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Dec 26, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-GC-coreclr Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants