diff options
author | Maoni Stephens <Maoni0@users.noreply.github.com> | 2019-07-26 13:14:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-26 13:14:10 -0700 |
commit | 433fb2892ef3430cacaef273da403e41f5cdcfa7 (patch) | |
tree | 1bd7e1b7e10aa6cb4d9874a673e480f18586f941 /src | |
parent | c01a9a157d512343ef104bb2b1f97b356e708b11 (diff) | |
download | coreclr-433fb2892ef3430cacaef273da403e41f5cdcfa7.tar.gz coreclr-433fb2892ef3430cacaef273da403e41f5cdcfa7.tar.bz2 coreclr-433fb2892ef3430cacaef273da403e41f5cdcfa7.zip |
fix gc config - need to read from both runtime config and env var (#25890)
need to read hardlimit configs from env vars as well as runtimeconfig.json
Diffstat (limited to 'src')
-rw-r--r-- | src/vm/eeconfig.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/vm/eeconfig.cpp b/src/vm/eeconfig.cpp index cdf2411bc1..356be68c3d 100644 --- a/src/vm/eeconfig.cpp +++ b/src/vm/eeconfig.cpp @@ -179,6 +179,8 @@ HRESULT EEConfig::Init() iGCHeapCount = 0; iGCNoAffinitize = 0; iGCAffinityMask = 0; + iGCHeapHardLimit = 0; + iGCHeapHardLimitPercent = 0; #ifdef GCTRIMCOMMIT iGCTrimCommit = 0; @@ -808,18 +810,20 @@ fTrackDynamicMethodDebugInfo = CLRConfig::GetConfigValue(CLRConfig::UNSUPPORTED_ if (!iGCAffinityMask) iGCAffinityMask = Configuration::GetKnobULONGLONGValue(W("System.GC.HeapAffinitizeMask")); if (!iGCSegmentSize) iGCSegmentSize = GetConfigULONGLONG_DontUse_(CLRConfig::UNSUPPORTED_GCSegmentSize, iGCSegmentSize); if (!iGCgen0size) iGCgen0size = GetConfigULONGLONG_DontUse_(CLRConfig::UNSUPPORTED_GCgen0size, iGCgen0size); + iGCHeapHardLimit = GetConfigULONGLONG_DontUse_(CLRConfig::EXTERNAL_GCHeapHardLimit, iGCHeapHardLimit); + if (!iGCHeapHardLimit) iGCHeapHardLimit = Configuration::GetKnobULONGLONGValue(W("System.GC.HeapHardLimit")); #else iGCAffinityMask = GetConfigDWORD_DontUse_(CLRConfig::EXTERNAL_GCHeapAffinitizeMask, iGCAffinityMask); if (!iGCAffinityMask) iGCAffinityMask = Configuration::GetKnobDWORDValue(W("System.GC.HeapAffinitizeMask"), 0); if (!iGCSegmentSize) iGCSegmentSize = GetConfigDWORD_DontUse_(CLRConfig::UNSUPPORTED_GCSegmentSize, iGCSegmentSize); if (!iGCgen0size) iGCgen0size = GetConfigDWORD_DontUse_(CLRConfig::UNSUPPORTED_GCgen0size, iGCgen0size); + iGCHeapHardLimit = GetConfigDWORD_DontUse_(CLRConfig::EXTERNAL_GCHeapHardLimit, iGCHeapHardLimit); + if (!iGCHeapHardLimit) iGCHeapHardLimit = Configuration::GetKnobDWORDValue(W("System.GC.HeapHardLimit"), 0); #endif //_WIN64 - const ULONGLONG ullHeapHardLimit = Configuration::GetKnobULONGLONGValue(W("System.GC.HeapHardLimit")); - iGCHeapHardLimit = FitsIn<size_t, ULONGLONG>(ullHeapHardLimit) - ? static_cast<size_t>(ullHeapHardLimit) - : ClrSafeInt<size_t>::MaxInt(); - iGCHeapHardLimitPercent = Configuration::GetKnobDWORDValue(W("System.GC.HeapHardLimitPercent"), 0); + iGCHeapHardLimitPercent = GetConfigDWORD_DontUse_(CLRConfig::EXTERNAL_GCHeapHardLimitPercent, iGCHeapHardLimitPercent); + if (!iGCHeapHardLimitPercent) + iGCHeapHardLimitPercent = Configuration::GetKnobDWORDValue(W("System.GC.HeapHardLimitPercent"), 0); if (g_IGCHoardVM) iGCHoardVM = g_IGCHoardVM; |