From 6bbe190049b018753b70aad09ee052276103cce1 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Tue, 12 Jul 2022 14:27:51 -0700 Subject: [PATCH 01/18] Update ClrEtwAll.man --- src/coreclr/inc/clrconfigvalues.h | 2 +- src/coreclr/vm/ClrEtwAll.man | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/coreclr/inc/clrconfigvalues.h b/src/coreclr/inc/clrconfigvalues.h index 105a6504db4d01..0198e29898d672 100644 --- a/src/coreclr/inc/clrconfigvalues.h +++ b/src/coreclr/inc/clrconfigvalues.h @@ -618,7 +618,7 @@ CONFIG_DWORD_INFO(INTERNAL_OSR_HighId, W("OSR_HighId"), 10000000, "High end of e RETAIL_CONFIG_STRING_INFO(INTERNAL_PGODataPath, W("PGODataPath"), "Read/Write PGO data from/to the indicated file.") RETAIL_CONFIG_DWORD_INFO(INTERNAL_ReadPGOData, W("ReadPGOData"), 0, "Read PGO data") RETAIL_CONFIG_DWORD_INFO(INTERNAL_WritePGOData, W("WritePGOData"), 0, "Write PGO data") -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_TieredPGO, W("TieredPGO"), 0, "Instrument Tier0 code and make counts available to Tier1") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_TieredPGO, W("TieredPGO"), 1, "Instrument Tier0 code and make counts available to Tier1") #endif /// diff --git a/src/coreclr/vm/ClrEtwAll.man b/src/coreclr/vm/ClrEtwAll.man index cc2bf3cfa8db67..9dc94ce953b7d1 100644 --- a/src/coreclr/vm/ClrEtwAll.man +++ b/src/coreclr/vm/ClrEtwAll.man @@ -680,6 +680,8 @@ + + @@ -4365,6 +4367,8 @@ + + @@ -8865,6 +8869,8 @@ + + @@ -8934,6 +8940,8 @@ + + From 41aed998c8e2ca84b1318a1caf40a0c4e06abc4b Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Tue, 12 Jul 2022 16:24:04 -0700 Subject: [PATCH 02/18] Add variables to eeconfig.h and eventtrace.cpp --- src/coreclr/vm/eeconfig.h | 4 ++++ src/coreclr/vm/eventtrace.cpp | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/coreclr/vm/eeconfig.h b/src/coreclr/vm/eeconfig.h index 0cb79d7f85fdcf..15086ebf3655d5 100644 --- a/src/coreclr/vm/eeconfig.h +++ b/src/coreclr/vm/eeconfig.h @@ -94,6 +94,8 @@ class EEConfig bool TieredPGO(void) const { LIMITED_METHOD_CONTRACT; return fTieredPGO; } #endif + bool ReadyToRun(void) const { LIMITED_METHOD_CONTRACT; return fTieredPGO; } + #if defined(FEATURE_ON_STACK_REPLACEMENT) // OSR Config DWORD OSR_CounterBump() const { LIMITED_METHOD_CONTRACT; return dwOSR_CounterBump; } @@ -656,6 +658,8 @@ class EEConfig bool fTieredPGO; #endif + bool fReadyToRun; + #if defined(FEATURE_ON_STACK_REPLACEMENT) DWORD dwOSR_HitLimit; DWORD dwOSR_CounterBump; diff --git a/src/coreclr/vm/eventtrace.cpp b/src/coreclr/vm/eventtrace.cpp index 17d31229ccdd57..1fd8593a13b03c 100644 --- a/src/coreclr/vm/eventtrace.cpp +++ b/src/coreclr/vm/eventtrace.cpp @@ -7636,6 +7636,8 @@ void ETW::CompilationLog::TieredCompilation::GetSettings(UINT32 *flagsRef) None = 0x0, QuickJit = 0x1, QuickJitForLoops = 0x2, + TieredPGO = 0x3, + ReadyToRun = 0x4, }; UINT32 flags = (UINT32)Flags::None; @@ -7647,6 +7649,14 @@ void ETW::CompilationLog::TieredCompilation::GetSettings(UINT32 *flagsRef) flags |= (UINT32)Flags::QuickJitForLoops; } } + if (g_pConfig->TieredPGO()) + { + flags |= (UINT32)Flags::TieredPGO; + } + if (g_pConfig->ReadyToRun()) + { + flags |= (UINT32)Flags::ReadyToRun; + } *flagsRef = flags; } From 4571eeb590d822abeb63cdb10862ab55a85d2c5e Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Tue, 12 Jul 2022 17:22:07 -0700 Subject: [PATCH 03/18] Set TieredPGO to 0 again --- src/coreclr/inc/clrconfigvalues.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/inc/clrconfigvalues.h b/src/coreclr/inc/clrconfigvalues.h index 0198e29898d672..105a6504db4d01 100644 --- a/src/coreclr/inc/clrconfigvalues.h +++ b/src/coreclr/inc/clrconfigvalues.h @@ -618,7 +618,7 @@ CONFIG_DWORD_INFO(INTERNAL_OSR_HighId, W("OSR_HighId"), 10000000, "High end of e RETAIL_CONFIG_STRING_INFO(INTERNAL_PGODataPath, W("PGODataPath"), "Read/Write PGO data from/to the indicated file.") RETAIL_CONFIG_DWORD_INFO(INTERNAL_ReadPGOData, W("ReadPGOData"), 0, "Read PGO data") RETAIL_CONFIG_DWORD_INFO(INTERNAL_WritePGOData, W("WritePGOData"), 0, "Write PGO data") -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_TieredPGO, W("TieredPGO"), 1, "Instrument Tier0 code and make counts available to Tier1") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_TieredPGO, W("TieredPGO"), 0, "Instrument Tier0 code and make counts available to Tier1") #endif /// From 06db22f04254a9526608d8e02d18333b80d81c10 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Tue, 12 Jul 2022 17:23:23 -0700 Subject: [PATCH 04/18] Fix typo --- src/coreclr/vm/eeconfig.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/vm/eeconfig.h b/src/coreclr/vm/eeconfig.h index 15086ebf3655d5..12dfde0fdae13c 100644 --- a/src/coreclr/vm/eeconfig.h +++ b/src/coreclr/vm/eeconfig.h @@ -94,7 +94,7 @@ class EEConfig bool TieredPGO(void) const { LIMITED_METHOD_CONTRACT; return fTieredPGO; } #endif - bool ReadyToRun(void) const { LIMITED_METHOD_CONTRACT; return fTieredPGO; } + bool ReadyToRun(void) const { LIMITED_METHOD_CONTRACT; return fReadyToRun; } #if defined(FEATURE_ON_STACK_REPLACEMENT) // OSR Config From d4179c6cbfa87a063cbe10d853f26b8f06a86c51 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Tue, 12 Jul 2022 19:47:44 -0700 Subject: [PATCH 05/18] Fix flag bits --- src/coreclr/vm/ClrEtwAll.man | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/coreclr/vm/ClrEtwAll.man b/src/coreclr/vm/ClrEtwAll.man index 9dc94ce953b7d1..cb7694234b5f0f 100644 --- a/src/coreclr/vm/ClrEtwAll.man +++ b/src/coreclr/vm/ClrEtwAll.man @@ -680,8 +680,8 @@ - - + + @@ -4367,8 +4367,8 @@ - - + + From 961105b1af4ba4a0aa17e503b1c6dca511f617c4 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Tue, 12 Jul 2022 23:00:40 -0700 Subject: [PATCH 06/18] Fix flag bits in eventtrace.cpp --- src/coreclr/vm/eventtrace.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/vm/eventtrace.cpp b/src/coreclr/vm/eventtrace.cpp index 1fd8593a13b03c..34a5dc62e886c8 100644 --- a/src/coreclr/vm/eventtrace.cpp +++ b/src/coreclr/vm/eventtrace.cpp @@ -7636,8 +7636,8 @@ void ETW::CompilationLog::TieredCompilation::GetSettings(UINT32 *flagsRef) None = 0x0, QuickJit = 0x1, QuickJitForLoops = 0x2, - TieredPGO = 0x3, - ReadyToRun = 0x4, + TieredPGO = 0x4, + ReadyToRun = 0x8, }; UINT32 flags = (UINT32)Flags::None; From cf42b609c4b95ade7da5a1caf364a77e7511c617 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Wed, 13 Jul 2022 10:17:21 -0700 Subject: [PATCH 07/18] Enable TieredGO check when FEATURE_PGO is defined --- src/coreclr/vm/eventtrace.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/coreclr/vm/eventtrace.cpp b/src/coreclr/vm/eventtrace.cpp index 34a5dc62e886c8..f61f0bc5275bc8 100644 --- a/src/coreclr/vm/eventtrace.cpp +++ b/src/coreclr/vm/eventtrace.cpp @@ -7649,10 +7649,12 @@ void ETW::CompilationLog::TieredCompilation::GetSettings(UINT32 *flagsRef) flags |= (UINT32)Flags::QuickJitForLoops; } } +#ifdef FEATURE_PGO if (g_pConfig->TieredPGO()) { flags |= (UINT32)Flags::TieredPGO; } +#endif if (g_pConfig->ReadyToRun()) { flags |= (UINT32)Flags::ReadyToRun; From 21453a608109bd742767035463f90d41b5506ca9 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Thu, 14 Jul 2022 11:41:45 -0700 Subject: [PATCH 08/18] Initialize fReadyToRun --- src/coreclr/vm/eeconfig.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/coreclr/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp index ce8e2691940bc1..cb303410a16b8d 100644 --- a/src/coreclr/vm/eeconfig.cpp +++ b/src/coreclr/vm/eeconfig.cpp @@ -241,6 +241,8 @@ HRESULT EEConfig::Init() fTieredPGO = false; #endif + fReadyToRun = false; + #if defined(FEATURE_ON_STACK_REPLACEMENT) dwOSR_HitLimit = 10; dwOSR_CounterBump = 5000; @@ -777,6 +779,8 @@ HRESULT EEConfig::sync() fTieredPGO = Configuration::GetKnobBooleanValue(W("System.Runtime.TieredPGO"), CLRConfig::EXTERNAL_TieredPGO); #endif + fReadyToRun = ReadyToRunInfo::IsReadyToRunEnabled(); + #if defined(FEATURE_ON_STACK_REPLACEMENT) dwOSR_HitLimit = CLRConfig::GetConfigValue(CLRConfig::INTERNAL_OSR_HitLimit); dwOSR_CounterBump = CLRConfig::GetConfigValue(CLRConfig::INTERNAL_OSR_CounterBump); From d7d227a70313d0f9887cbc936f07c4d44550bf89 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Thu, 14 Jul 2022 12:44:28 -0700 Subject: [PATCH 09/18] Add conditional assignment to fReadyToRun = ReadyToRunInfo::IsReadyToRunEnabled(); --- src/coreclr/vm/eeconfig.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/coreclr/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp index cb303410a16b8d..6172b3e69e9055 100644 --- a/src/coreclr/vm/eeconfig.cpp +++ b/src/coreclr/vm/eeconfig.cpp @@ -779,7 +779,9 @@ HRESULT EEConfig::sync() fTieredPGO = Configuration::GetKnobBooleanValue(W("System.Runtime.TieredPGO"), CLRConfig::EXTERNAL_TieredPGO); #endif +#if defined(FEATURE_READYTORUN) fReadyToRun = ReadyToRunInfo::IsReadyToRunEnabled(); +#endif #if defined(FEATURE_ON_STACK_REPLACEMENT) dwOSR_HitLimit = CLRConfig::GetConfigValue(CLRConfig::INTERNAL_OSR_HitLimit); From 529e0aeead021463ecaca6a671ca6944b543a10d Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Thu, 14 Jul 2022 13:03:54 -0700 Subject: [PATCH 10/18] Use g_pConfig->ReadyToRun() --- src/coreclr/vm/eeconfig.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp index 6172b3e69e9055..0b462ef7f2efbc 100644 --- a/src/coreclr/vm/eeconfig.cpp +++ b/src/coreclr/vm/eeconfig.cpp @@ -479,7 +479,7 @@ HRESULT EEConfig::sync() pReadyToRunExcludeList = NULL; #if defined(FEATURE_READYTORUN) - if (ReadyToRunInfo::IsReadyToRunEnabled()) + if (g_pConfig->ReadyToRun()) { NewArrayHolder wszReadyToRunExcludeList; IfFailRet(CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ReadyToRunExcludeList, &wszReadyToRunExcludeList)); @@ -780,7 +780,7 @@ HRESULT EEConfig::sync() #endif #if defined(FEATURE_READYTORUN) - fReadyToRun = ReadyToRunInfo::IsReadyToRunEnabled(); + fReadyToRun = g_pConfig->ReadyToRun(); #endif #if defined(FEATURE_ON_STACK_REPLACEMENT) From f3f07df02a3ea9c556b90d003abcbdf72f9a178c Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Thu, 14 Jul 2022 13:07:50 -0700 Subject: [PATCH 11/18] Delete ReadyToRunInfo::IsReadyToRunEnabled() and replace with g_pConfig->ReadyToRun() --- src/coreclr/vm/readytoruninfo.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/coreclr/vm/readytoruninfo.cpp b/src/coreclr/vm/readytoruninfo.cpp index 353fd931c80c65..4aba372961f9ac 100644 --- a/src/coreclr/vm/readytoruninfo.cpp +++ b/src/coreclr/vm/readytoruninfo.cpp @@ -380,14 +380,6 @@ void ReadyToRunInfo::SetMethodDescForEntryPointInNativeImage(PCODE entryPoint, M } } -BOOL ReadyToRunInfo::IsReadyToRunEnabled() -{ - WRAPPER_NO_CONTRACT; - - static ConfigDWORD configReadyToRun; - return configReadyToRun.val(CLRConfig::EXTERNAL_ReadyToRun); -} - // A log file to record success/failure of R2R loads. s_r2rLogFile can have the following values: // -1: Logging not yet initialized. // NULL: Logging disabled. @@ -414,7 +406,7 @@ static void LogR2r(const char *msg, PEAssembly *pPEAssembly) else r2rLogFile = NULL; - if (r2rLogFile != NULL && !ReadyToRunInfo::IsReadyToRunEnabled()) + if (r2rLogFile != NULL && !g_pConfig->ReadyToRun()) { fputs("Ready to Run not enabled.\n", r2rLogFile); fclose(r2rLogFile); From 673c454beae823081bd762a3577ffc24db5178cd Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Thu, 14 Jul 2022 13:10:42 -0700 Subject: [PATCH 12/18] Use CLRConfig::GetConfigValue to initialize fReadyToRun --- src/coreclr/vm/eeconfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp index 0b462ef7f2efbc..efbdf401599748 100644 --- a/src/coreclr/vm/eeconfig.cpp +++ b/src/coreclr/vm/eeconfig.cpp @@ -780,7 +780,7 @@ HRESULT EEConfig::sync() #endif #if defined(FEATURE_READYTORUN) - fReadyToRun = g_pConfig->ReadyToRun(); + fReadyToRun = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ReadyToRun); #endif #if defined(FEATURE_ON_STACK_REPLACEMENT) From 624c10486bc57e666578cb20824af1b9ae8f84ef Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Thu, 14 Jul 2022 13:14:10 -0700 Subject: [PATCH 13/18] Delete IsReadyToRunEnabled() from readytoruninfo.h --- src/coreclr/vm/readytoruninfo.cpp | 2 +- src/coreclr/vm/readytoruninfo.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/coreclr/vm/readytoruninfo.cpp b/src/coreclr/vm/readytoruninfo.cpp index 4aba372961f9ac..44535080cbf018 100644 --- a/src/coreclr/vm/readytoruninfo.cpp +++ b/src/coreclr/vm/readytoruninfo.cpp @@ -510,7 +510,7 @@ PTR_ReadyToRunInfo ReadyToRunInfo::Initialize(Module * pModule, AllocMemTracker PEAssembly * pFile = pModule->GetPEAssembly(); - if (!IsReadyToRunEnabled()) + if (!g_pConfig->ReadyToRun()) { // Log message is ignored in this case. DoLog(NULL); diff --git a/src/coreclr/vm/readytoruninfo.h b/src/coreclr/vm/readytoruninfo.h index 0d9a0097858cce..ca5950a530f26d 100644 --- a/src/coreclr/vm/readytoruninfo.h +++ b/src/coreclr/vm/readytoruninfo.h @@ -92,8 +92,6 @@ class ReadyToRunInfo public: ReadyToRunInfo(Module * pModule, LoaderAllocator* pLoaderAllocator, PEImageLayout * pLayout, READYTORUN_HEADER * pHeader, NativeImage * pNativeImage, AllocMemTracker *pamTracker); - static BOOL IsReadyToRunEnabled(); - static PTR_ReadyToRunInfo ComputeAlternateGenericLocationForR2RCode(MethodDesc *pMethod); static PTR_ReadyToRunInfo GetUnrelatedR2RModules(); PTR_ReadyToRunInfo GetNextUnrelatedR2RModule() { LIMITED_METHOD_CONTRACT; return m_pNextR2RForUnrelatedCode; } From 15dc0f0b425f23211470c2260b6902f34a64ea11 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Thu, 14 Jul 2022 18:47:08 -0700 Subject: [PATCH 14/18] Add condition on ReadyToRun flag --- src/coreclr/vm/eeconfig.cpp | 2 ++ src/coreclr/vm/eeconfig.h | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/coreclr/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp index efbdf401599748..234bdf4489cdc6 100644 --- a/src/coreclr/vm/eeconfig.cpp +++ b/src/coreclr/vm/eeconfig.cpp @@ -241,7 +241,9 @@ HRESULT EEConfig::Init() fTieredPGO = false; #endif +#if defined(FEATURE_READYTORUN) fReadyToRun = false; +#endif #if defined(FEATURE_ON_STACK_REPLACEMENT) dwOSR_HitLimit = 10; diff --git a/src/coreclr/vm/eeconfig.h b/src/coreclr/vm/eeconfig.h index 12dfde0fdae13c..4651cf1bc84e0f 100644 --- a/src/coreclr/vm/eeconfig.h +++ b/src/coreclr/vm/eeconfig.h @@ -94,7 +94,9 @@ class EEConfig bool TieredPGO(void) const { LIMITED_METHOD_CONTRACT; return fTieredPGO; } #endif +#if defined(FEATURE_READYTORUN) bool ReadyToRun(void) const { LIMITED_METHOD_CONTRACT; return fReadyToRun; } +#endif #if defined(FEATURE_ON_STACK_REPLACEMENT) // OSR Config @@ -658,7 +660,9 @@ class EEConfig bool fTieredPGO; #endif +#if defined(FEATURE_READYTORUN) bool fReadyToRun; +#endif #if defined(FEATURE_ON_STACK_REPLACEMENT) DWORD dwOSR_HitLimit; From fd54b9e3d4057153f2d079a8576f104abda4ea42 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Thu, 21 Jul 2022 16:54:23 -0700 Subject: [PATCH 15/18] Set fTieredPGO and fReadyToRun before SendSettings() is called --- src/coreclr/vm/eeconfig.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/coreclr/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp index 234bdf4489cdc6..b8a0130bdf5ef4 100644 --- a/src/coreclr/vm/eeconfig.cpp +++ b/src/coreclr/vm/eeconfig.cpp @@ -696,6 +696,14 @@ HRESULT EEConfig::sync() dwSleepOnExit = CLRConfig::GetConfigValue(CLRConfig::UNSUPPORTED_SleepOnExit); +#if defined(FEATURE_PGO) + fTieredPGO = Configuration::GetKnobBooleanValue(W("System.Runtime.TieredPGO"), CLRConfig::EXTERNAL_TieredPGO); +#endif + +#if defined(FEATURE_READYTORUN) + fReadyToRun = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ReadyToRun); +#endif + #if defined(FEATURE_TIERED_COMPILATION) fTieredCompilation = Configuration::GetKnobBooleanValue(W("System.Runtime.TieredCompilation"), CLRConfig::EXTERNAL_TieredCompilation); if (fTieredCompilation) @@ -777,14 +785,6 @@ HRESULT EEConfig::sync() } #endif -#if defined(FEATURE_PGO) - fTieredPGO = Configuration::GetKnobBooleanValue(W("System.Runtime.TieredPGO"), CLRConfig::EXTERNAL_TieredPGO); -#endif - -#if defined(FEATURE_READYTORUN) - fReadyToRun = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ReadyToRun); -#endif - #if defined(FEATURE_ON_STACK_REPLACEMENT) dwOSR_HitLimit = CLRConfig::GetConfigValue(CLRConfig::INTERNAL_OSR_HitLimit); dwOSR_CounterBump = CLRConfig::GetConfigValue(CLRConfig::INTERNAL_OSR_CounterBump); From 5ade50fc68ecd1b2e0c1dddbf445af09f3833286 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Tue, 2 Aug 2022 17:08:13 -0700 Subject: [PATCH 16/18] Add condition on ReadyToRun --- src/coreclr/vm/eventtrace.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/coreclr/vm/eventtrace.cpp b/src/coreclr/vm/eventtrace.cpp index f61f0bc5275bc8..26602a6831c3c1 100644 --- a/src/coreclr/vm/eventtrace.cpp +++ b/src/coreclr/vm/eventtrace.cpp @@ -7655,10 +7655,12 @@ void ETW::CompilationLog::TieredCompilation::GetSettings(UINT32 *flagsRef) flags |= (UINT32)Flags::TieredPGO; } #endif +#ifdef FEATURE_READYTORUN if (g_pConfig->ReadyToRun()) { flags |= (UINT32)Flags::ReadyToRun; } +#endif *flagsRef = flags; } From 1bffcbe28e71642800761da246e7b373a238caa4 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Wed, 3 Aug 2022 12:03:18 -0700 Subject: [PATCH 17/18] Initialize fReadyToRun before ReadyToRun() is called --- src/coreclr/vm/eeconfig.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/coreclr/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp index b8a0130bdf5ef4..88175d4a0d16ec 100644 --- a/src/coreclr/vm/eeconfig.cpp +++ b/src/coreclr/vm/eeconfig.cpp @@ -480,7 +480,10 @@ HRESULT EEConfig::sync() } pReadyToRunExcludeList = NULL; + #if defined(FEATURE_READYTORUN) + fReadyToRun = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ReadyToRun); + if (g_pConfig->ReadyToRun()) { NewArrayHolder wszReadyToRunExcludeList; @@ -700,10 +703,6 @@ HRESULT EEConfig::sync() fTieredPGO = Configuration::GetKnobBooleanValue(W("System.Runtime.TieredPGO"), CLRConfig::EXTERNAL_TieredPGO); #endif -#if defined(FEATURE_READYTORUN) - fReadyToRun = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ReadyToRun); -#endif - #if defined(FEATURE_TIERED_COMPILATION) fTieredCompilation = Configuration::GetKnobBooleanValue(W("System.Runtime.TieredCompilation"), CLRConfig::EXTERNAL_TieredCompilation); if (fTieredCompilation) From f9b58e06e2e6bb9d110ba1fa05cd5dcdbc938973 Mon Sep 17 00:00:00 2001 From: Eduardo Manuel Velarde Polar Date: Wed, 3 Aug 2022 12:16:04 -0700 Subject: [PATCH 18/18] Use fReadyToRun directly instead of going through g_pConfig --- src/coreclr/vm/eeconfig.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp index 88175d4a0d16ec..883d602b1f2309 100644 --- a/src/coreclr/vm/eeconfig.cpp +++ b/src/coreclr/vm/eeconfig.cpp @@ -484,7 +484,7 @@ HRESULT EEConfig::sync() #if defined(FEATURE_READYTORUN) fReadyToRun = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ReadyToRun); - if (g_pConfig->ReadyToRun()) + if (fReadyToRun) { NewArrayHolder wszReadyToRunExcludeList; IfFailRet(CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ReadyToRunExcludeList, &wszReadyToRunExcludeList));