summaryrefslogtreecommitdiff
path: root/src/vm
diff options
context:
space:
mode:
authorMaoni Stephens <Maoni0@users.noreply.github.com>2019-07-26 13:14:10 -0700
committerGitHub <noreply@github.com>2019-07-26 13:14:10 -0700
commit433fb2892ef3430cacaef273da403e41f5cdcfa7 (patch)
tree1bd7e1b7e10aa6cb4d9874a673e480f18586f941 /src/vm
parentc01a9a157d512343ef104bb2b1f97b356e708b11 (diff)
downloadcoreclr-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/vm')
-rw-r--r--src/vm/eeconfig.cpp14
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;