summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2015-05-01 14:02:11 -0700
committerJan Kotas <jkotas@microsoft.com>2015-05-01 14:02:11 -0700
commit25272dba24d166f8075c28cce08ac911941fcfc0 (patch)
tree048a68701545004216f3015d8d6523086f7d5ead
parent59d7ae3f1a219a479c81ce29f38066b158e51c19 (diff)
parent722ae33e917c1346959d2c3b7f90f36f29bbefcf (diff)
downloadcoreclr-25272dba24d166f8075c28cce08ac911941fcfc0.tar.gz
coreclr-25272dba24d166f8075c28cce08ac911941fcfc0.tar.bz2
coreclr-25272dba24d166f8075c28cce08ac911941fcfc0.zip
Merge pull request #905 from dotnet-bot/from-tfs
Merge changes from TFS
-rw-r--r--src/inc/clrconfigvalues.h1
-rw-r--r--src/vm/codeman.cpp7
2 files changed, 7 insertions, 1 deletions
diff --git a/src/inc/clrconfigvalues.h b/src/inc/clrconfigvalues.h
index b3331840d9..e3d6137ef1 100644
--- a/src/inc/clrconfigvalues.h
+++ b/src/inc/clrconfigvalues.h
@@ -596,6 +596,7 @@ RETAIL_CONFIG_STRING_INFO(INTERNAL_WinMDPath, W("WinMDPath"), "Path for Windows
// Loader heap
//
CONFIG_DWORD_INFO_EX(INTERNAL_LoaderHeapCallTracing, W("LoaderHeapCallTracing"), 0, "Loader heap troubleshooting", CLRConfig::REGUTIL_default)
+RETAIL_CONFIG_DWORD_INFO(INTERNAL_CodeHeapReserveForJumpStubs, W("CodeHeapReserveForJumpStubs"), 2, "Percentage of code heap to reserve for jump stubs")
//
// Log
diff --git a/src/vm/codeman.cpp b/src/vm/codeman.cpp
index 77efda3d92..1175f63c1d 100644
--- a/src/vm/codeman.cpp
+++ b/src/vm/codeman.cpp
@@ -2162,7 +2162,12 @@ void* EEJitManager::allocCodeRaw(CodeHeapRequestInfo *pInfo,
// allocation won't fail or handle jump stub allocation gracefully (see DevDiv #381823 and
// related bugs for details).
//
- size_t reserveForJumpStubs = pCodeHeap->maxCodeHeapSize / 64;
+ static int codeHeapReserveForJumpStubs = -1;
+
+ if (codeHeapReserveForJumpStubs == -1)
+ codeHeapReserveForJumpStubs = CLRConfig::GetConfigValue(CLRConfig::INTERNAL_CodeHeapReserveForJumpStubs);
+
+ size_t reserveForJumpStubs = codeHeapReserveForJumpStubs * (pCodeHeap->maxCodeHeapSize / 100);
size_t minReserveForJumpStubs = sizeof(CodeHeader) +
sizeof(JumpStubBlockHeader) + (size_t) DEFAULT_JUMPSTUBS_PER_BLOCK * BACK_TO_BACK_JUMP_ALLOCATE_SIZE +