Fix an issue with sysconf returning the wrong last level cache values on Linux running on certain AMD Processors. by mrsharm · Pull Request #109749 · dotnet/runtime
.NET 9 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.