Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

GC Documentation: Update knobs doc to clarify usage#27566

Closed
NickCraver wants to merge 1 commit intodotnet:masterfrom
NickCraver:craver/gc-docs
Closed

GC Documentation: Update knobs doc to clarify usage#27566
NickCraver wants to merge 1 commit intodotnet:masterfrom
NickCraver:craver/gc-docs

Conversation

@NickCraver
Copy link
Copy Markdown
Member

The current docs are a bit confusing between global and per-heap. This clarifies that and aligns the GC bits between clrconfigvalues.h and clr-configuration-knobs.md (intended to be generated, but not actually matching at the moment).

In doing this and running the generation, I noticed there's a large gap between current code and what-would-be-generated documentation. Here's that current diff:

diff --git a/Documentation/project-docs/clr-configuration-knobs.md b/Documentation/project-docs/clr-configuration-knobs.md
index 6b5f9846a1..880666982e 100644
--- a/Documentation/project-docs/clr-configuration-knobs.md
+++ b/Documentation/project-docs/clr-configuration-knobs.md
@@ -17,7 +17,7 @@ Name | Description | Type
 
 ## Environment/Registry Configuration Knobs
 
-This table was machine-generated using `clr-configuration-knobs.csx` script from repository commit [0ae3d02](https://github.com/dotnet/coreclr/commit/0ae3d020f82c3f8650b7e5eeaf9f1030f7e7e785) on 4/25/2019. It might be out of date. To generate latest documentation run `dotnet-script clr-configuration-knobs.csx` from this file directory.
+This table was machine-generated using `clr-configuration-knobs.csx` script from repository commit [41546b0](https://github.com/dotnet/coreclr/commit/41546b05e31c0ba72537ec6445176086964717bb) on 10/31/2019. It might be out of date. To generate latest documentation run `dotnet-script clr-configuration-knobs.csx` from this file directory.
 
 When using these configurations from environment variables, the variables need to have the `COMPlus_` prefix in their names. e.g. To set DumpJittedMethods to 1, add the environment variable `COMPlus_DumpJittedMethods=1`.
 
@@ -25,46 +25,43 @@ See also [Setting configuration variables](../building/viewing-jit-dumps.md#sett
 
 #### Tables
 1. [AppDomain Configuration Knobs](#appdomain-configuration-knobs)
-2. [ARM Configuration Knobs](#arm-configuration-knobs)
-3. [Assembly Loader Configuration Knobs](#assembly-loader-configuration-knobs)
-4. [Conditional breakpoints Configuration Knobs](#conditional-breakpoints-configuration-knobs)
-5. [Debugger Configuration Knobs](#debugger-configuration-knobs)
-6. [Diagnostics (internal general-purpose) Configuration Knobs](#diagnostics-internal-general-purpose-configuration-knobs)
-7. [Entry point slot backpatch Configuration Knobs](#entry-point-slot-backpatch-configuration-knobs)
-8. [Exception Handling Configuration Knobs](#exception-handling-configuration-knobs)
-9. [Garbage collector Configuration Knobs](#garbage-collector-configuration-knobs)
-10. [GDBJIT Configuration Knobs](#gdbjit-configuration-knobs)
-11. [IBC Configuration Knobs](#ibc-configuration-knobs)
-12. [Interop Configuration Knobs](#interop-configuration-knobs)
-13. [Interpreter Configuration Knobs](#interpreter-configuration-knobs)
-14. [JIT Configuration Knobs](#jit-configuration-knobs)
-15. [JIT Hardware Intrinsics Configuration Knobs](#jit-hardware-intrinsics-configuration-knobs)
-16. [Jit Pitching Configuration Knobs](#jit-pitching-configuration-knobs)
-17. [Loader Configuration Knobs](#loader-configuration-knobs)
-18. [Loader heap Configuration Knobs](#loader-heap-configuration-knobs)
-19. [Log Configuration Knobs](#log-configuration-knobs)
-20. [MetaData Configuration Knobs](#metadata-configuration-knobs)
-21. [Native Binder Configuration Knobs](#native-binder-configuration-knobs)
-22. [NGEN Configuration Knobs](#ngen-configuration-knobs)
-23. [Performance Configuration Knobs](#performance-configuration-knobs)
-24. [Profiling API / ETW Configuration Knobs](#profiling-api--etw-configuration-knobs)
-25. [Spinning heuristics Configuration Knobs](#spinning-heuristics-configuration-knobs)
-26. [Stress Configuration Knobs](#stress-configuration-knobs)
-27. [Thread (miscellaneous) Configuration Knobs](#thread-miscellaneous-configuration-knobs)
-28. [Thread Suspend Configuration Knobs](#thread-suspend-configuration-knobs)
-29. [Threadpool Configuration Knobs](#threadpool-configuration-knobs)
-30. [Tiered Compilation Configuration Knobs](#tiered-compilation-configuration-knobs)
-31. [TypeLoader Configuration Knobs](#typeloader-configuration-knobs)
-32. [Uncategorized Configuration Knobs](#uncategorized-configuration-knobs)
-33. [Virtual call stubs Configuration Knobs](#virtual-call-stubs-configuration-knobs)
-34. [Watson Configuration Knobs](#watson-configuration-knobs)
-35. [Zap Configuration Knobs](#zap-configuration-knobs)
+2. [Assembly Loader Configuration Knobs](#assembly-loader-configuration-knobs)
+3. [Conditional breakpoints Configuration Knobs](#conditional-breakpoints-configuration-knobs)
+4. [Debugger Configuration Knobs](#debugger-configuration-knobs)
+5. [Diagnostics (internal general-purpose) Configuration Knobs](#diagnostics-internal-general-purpose-configuration-knobs)
+6. [Entry point slot backpatch Configuration Knobs](#entry-point-slot-backpatch-configuration-knobs)
+7. [Exception Handling Configuration Knobs](#exception-handling-configuration-knobs)
+8. [Garbage collector Configuration Knobs](#garbage-collector-configuration-knobs)
+9. [GDBJIT Configuration Knobs](#gdbjit-configuration-knobs)
+10. [IBC Configuration Knobs](#ibc-configuration-knobs)
+11. [Interop Configuration Knobs](#interop-configuration-knobs)
+12. [Interpreter Configuration Knobs](#interpreter-configuration-knobs)
+13. [JIT Configuration Knobs](#jit-configuration-knobs)
+14. [JIT Hardware Intrinsics Configuration Knobs](#jit-hardware-intrinsics-configuration-knobs)
+15. [Jit Pitching Configuration Knobs](#jit-pitching-configuration-knobs)
+16. [Loader Configuration Knobs](#loader-configuration-knobs)
+17. [Loader heap Configuration Knobs](#loader-heap-configuration-knobs)
+18. [Log Configuration Knobs](#log-configuration-knobs)
+19. [MetaData Configuration Knobs](#metadata-configuration-knobs)
+20. [Native Binder Configuration Knobs](#native-binder-configuration-knobs)
+21. [NGEN Configuration Knobs](#ngen-configuration-knobs)
+22. [Profiling API / ETW Configuration Knobs](#profiling-api--etw-configuration-knobs)
+23. [Spinning heuristics Configuration Knobs](#spinning-heuristics-configuration-knobs)
+24. [Stress Configuration Knobs](#stress-configuration-knobs)
+25. [Thread (miscellaneous) Configuration Knobs](#thread-miscellaneous-configuration-knobs)
+26. [Thread Suspend Configuration Knobs](#thread-suspend-configuration-knobs)
+27. [Threadpool Configuration Knobs](#threadpool-configuration-knobs)
+28. [Tiered Compilation Configuration Knobs](#tiered-compilation-configuration-knobs)
+29. [TypeLoader Configuration Knobs](#typeloader-configuration-knobs)
+30. [Uncategorized Configuration Knobs](#uncategorized-configuration-knobs)
+31. [Virtual call stubs Configuration Knobs](#virtual-call-stubs-configuration-knobs)
+32. [Watson Configuration Knobs](#watson-configuration-knobs)
+33. [Zap Configuration Knobs](#zap-configuration-knobs)
 
 #### AppDomain Configuration Knobs
 
 Name | Description | Type | Class | Default Value | Flags
 -----|-------------|------|-------|---------------|-------
-`AddRejitNops` | Control for the profiler rejit feature infrastructure | `DWORD` | `UNSUPPORTED` | |
 `ADDumpSB` | Not used | `DWORD` | `INTERNAL` | `0` |
 `ADForceSB` | Forces sync block creation for all objects | `DWORD` | `INTERNAL` | `0` |
 `ADLogMemory` | Superseded by test hooks | `DWORD` | `INTERNAL` | `0` |
@@ -167,7 +164,7 @@ Name | Description | Type | Class | Default Value | Flags
 `DebuggerBreakPoint` | Allows counting various debug events | `STRING` | `INTERNAL` | | REGUTIL_default
 `Debugging_RequiredVersion` | The lowest ICorDebug version we should attempt to emulate, or 0 for default policy.  Use 2 for CLRv2, 4 for CLRv4, etc. | `DWORD` | `UNSUPPORTED` | `0` |
 `DebugVerify` | Control for tracing in peverify | `STRING` | `INTERNAL` | | REGUTIL_default
-`EnableDiagnostics` | Allows the debugger and profiler diagnostics to be disabled | `DWORD` | `EXTERNAL` | `1` | REGUTIL_default
+`EnableDiagnostics` | Allows the debugger, profiler, and EventPipe diagnostics to be disabled | `DWORD` | `EXTERNAL` | `1` | REGUTIL_default
 `EncApplyChanges` | Allows breaking when ApplyEditAndContinue is called | `DWORD` | `INTERNAL` | `0` |
 `EnCBreakOnRemapComplete` | Allows breaking after N RemapCompletes | `DWORD` | `INTERNAL` | `0` | REGUTIL_default
 `EnCBreakOnRemapOpportunity` | Allows breaking after N RemapOpportunities | `DWORD` | `INTERNAL` | `0` | REGUTIL_default
@@ -192,7 +189,6 @@ Name | Description | Type | Class | Default Value | Flags
 `InjectFault` |  | `DWORD` | `INTERNAL` | `0` | REGUTIL_default
 `SuppressChecks` |  | `DWORD` | `INTERNAL` | |
 `SuppressLockViolationsOnReentryFromOS` | 64 bit OOM tests re-enter the CLR via RtlVirtualUnwind.  This indicates whether to suppress resulting locking violations. | `DWORD` | `INTERNAL` | `0` |
-`TestHooks` | Used by tests to get test an insight on various CLR workings | `STRING` | `INTERNAL` | |
 
 #### Entry point slot backpatch Configuration Knobs
 
@@ -293,13 +289,17 @@ Name | Description | Type | Class | Default Value | Flags
 `EnableRCWCleanupOnSTAShutdown` | Performs RCW cleanup when STA shutdown is detected using IInitializeSpy in classic processes. | `DWORD` | `INTERNAL` | `0` |
 `EventPipeCircularMB` | The EventPipe circular buffer size in megabytes. | `DWORD` | `INTERNAL` | `1024` |
 `EventPipeConfig` | Configuration for EventPipe. | `STRING` | `INTERNAL` | |
+`EventPipeNetTraceFormat` | Enable/disable using the newer nettrace file format. | `DWORD` | `INTERNAL` | `1` |
 `EventPipeOutputPath` | The full path excluding file name for the trace file that will be written when COMPlus_EnableEventPipe=1 | `STRING` | `INTERNAL` | |
+`EventPipeProcNumbers` | Enable/disable capturing processor numbers in EventPipe event headers | `DWORD` | `INTERNAL` | `0` |
 `EventPipeRundown` | Enable/disable eventpipe rundown. | `DWORD` | `INTERNAL` | `1` |
 `ExposeExceptionsInCOM` |  | `DWORD` | `INTERNAL` | |
 `InteropLogArguments` | Log all pinned arguments passed to an interop call | `DWORD` | `EXTERNAL` | `0` |
 `InteropValidatePinnedObjects` | After returning from a managed-to-unmanaged interop call, validate GC heap around objects pinned by IL stubs. | `DWORD` | `UNSUPPORTED` | `0` |
 `LocalWinMDPath` | Additional path to probe for WinMD files in if a WinRT type is not resolved using the standard paths. | `STRING` | `INTERNAL` | |
 `LogCCWRefCountChange` | Outputs debug information and calls LogCCWRefCountChange_BREAKPOINT when AddRef or Release is called on a CCW. | `STRING` | `UNSUPPORTED` | |
+`LTTng` | If COMPlus_LTTng is set to 0, this will prevent the LTTng library from being loaded at runtime | `DWORD` | `UNSUPORTED` | `1` |
+`LTTngConfig` | Configuration for LTTng. | `STRING` | `INTERNAL` | |
 `PInvokeInline` |  | `STRING` | `EXTERNAL` | | REGUTIL_default
 
 #### Interpreter Configuration Knobs
@@ -423,6 +423,7 @@ Name | Description | Type | Class | Default Value | Flags
 `JitHashHalt` | Same as JitHalt, but for a method hash | `DWORD` | | `-1` |
 `JitHeartbeat` |  | `DWORD` | `INTERNAL` | `0` |
 `JitHelperLogging` |  | `DWORD` | `INTERNAL` | `0` |
+`JitHostMaxSlabCache` | Sets jit host max slab cache size, 16MB default | `DWORD` | `EXTERNAL` | `0x1000000` |
 `JitImportBreak` |  | `SSV` | | |
 `JitInclude` |  | `SSV` | | |
 `JitInlineAdditionalMultiplier` |  | `DWORD` | | `0` |
@@ -533,33 +534,34 @@ Name | Description | Type | Class | Default Value | Flags
 `TailCallMax` |  | `STRING` | `INTERNAL` | | REGUTIL_default
 `TailCallOpt` |  | `STRING` | `EXTERNAL` | | REGUTIL_default
 `TailcallStress` |  | `DWORD` | | `0` |
+`TrackDynamicMethodDebugInfo` | Specifies whether debug info should be generated and tracked for dynamic methods | `DWORD` | `UNSUPPORTED` | `0` | REGUTIL_default
 
 #### JIT Hardware Intrinsics Configuration Knobs
 
 Name | Description | Type | Class | Default Value | Flags
 -----|-------------|------|-------|---------------|-------
 `EnableAES` | Enable AES | `DWORD` | | `1` |
-`EnableArm64Aes` |  | `DWORD` | `      ` | `1` |
-`EnableArm64Atomics` |  | `DWORD` | `  ` | `1` |
-`EnableArm64Crc32` |  | `DWORD` | `    ` | `1` |
-`EnableArm64Dcpop` |  | `DWORD` | `    ` | `1` |
-`EnableArm64Dp` |  | `DWORD` | `       ` | `1` |
-`EnableArm64Fcma` |  | `DWORD` | `     ` | `1` |
-`EnableArm64Fp` |  | `DWORD` | `       ` | `1` |
-`EnableArm64Fp16` |  | `DWORD` | `     ` | `1` |
-`EnableArm64Jscvt` |  | `DWORD` | `    ` | `1` |
-`EnableArm64Lrcpc` |  | `DWORD` | `    ` | `1` |
-`EnableArm64Pmull` |  | `DWORD` | `    ` | `1` |
-`EnableArm64Sha1` |  | `DWORD` | `     ` | `1` |
-`EnableArm64Sha256` |  | `DWORD` | `   ` | `1` |
-`EnableArm64Sha3` |  | `DWORD` | `     ` | `1` |
-`EnableArm64Sha512` |  | `DWORD` | `   ` | `1` |
-`EnableArm64Simd` |  | `DWORD` | `     ` | `1` |
-`EnableArm64Simd_fp16` |  | `DWORD` | | `1` |
-`EnableArm64Simd_v81` |  | `DWORD` | ` ` | `1` |
-`EnableArm64Sm3` |  | `DWORD` | `      ` | `1` |
-`EnableArm64Sm4` |  | `DWORD` | `      ` | `1` |
-`EnableArm64Sve` |  | `DWORD` | `      ` | `1` |
+`EnableArm64AdvSimd` |  | `DWORD` | | `1` |
+`EnableArm64AdvSimd_Fp16` |  | `DWORD` | | `1` |
+`EnableArm64AdvSimd_v81` |  | `DWORD` | | `1` |
+`EnableArm64Aes` |  | `DWORD` | | `1` |
+`EnableArm64Atomics` |  | `DWORD` | | `1` |
+`EnableArm64Crc32` |  | `DWORD` | | `1` |
+`EnableArm64Dcpop` |  | `DWORD` | | `1` |
+`EnableArm64Dp` |  | `DWORD` | | `1` |
+`EnableArm64Fcma` |  | `DWORD` | | `1` |
+`EnableArm64Fp` |  | `DWORD` | | `1` |
+`EnableArm64Fp16` |  | `DWORD` | | `1` |
+`EnableArm64Jscvt` |  | `DWORD` | | `1` |
+`EnableArm64Lrcpc` |  | `DWORD` | | `1` |
+`EnableArm64Pmull` |  | `DWORD` | | `1` |
+`EnableArm64Sha1` |  | `DWORD` | | `1` |
+`EnableArm64Sha256` |  | `DWORD` | | `1` |
+`EnableArm64Sha3` |  | `DWORD` | | `1` |
+`EnableArm64Sha512` |  | `DWORD` | | `1` |
+`EnableArm64Sm3` |  | `DWORD` | | `1` |
+`EnableArm64Sm4` |  | `DWORD` | | `1` |
+`EnableArm64Sve` |  | `DWORD` | | `1` |
 `EnableAVX` | Enable AVX | `DWORD` | | `1` |
 `EnableAVX2` | Enable AVX2 | `DWORD` | | `1` |
 `EnableBMI1` | Enable BMI1 | `DWORD` | | `1` |
@@ -684,17 +686,10 @@ Name | Description | Type | Class | Default Value | Flags
 `partialNGenStress` |  | `DWORD` | `INTERNAL` | `0` | REGUTIL_default
 `ZapDoNothing` |  | `DWORD` | `INTERNAL` | `0` | REGUTIL_default
 
-#### Performance Configuration Knobs
-
-Name | Description | Type | Class | Default Value | Flags
------|-------------|------|-------|---------------|-------
-`performanceScenario` | Activates a set of workload-specific default values for performance settings | `STRING` | `EXTERNAL` | |
-
 #### Profiling API / ETW Configuration Knobs
 
 Name | Description | Type | Class | Default Value | Flags
 -----|-------------|------|-------|---------------|-------
-`AttachThreadAlwaysOn` | Forces profapi attach thread to be created on startup, instead of on-demand. | `DWORD` | `EXTERNAL` | |
 `COR_ENABLE_PROFILING` | Flag to indicate whether profiling should be enabled for the currently running process. | `DWORD` | `EXTERNAL` | `0` | DontPrependCOMPlus_ \| IgnoreConfigFiles
 `COR_PROFILER` | Specifies GUID of profiler to load into currently running process | `STRING` | `EXTERNAL` | | DontPrependCOMPlus_
 `COR_PROFILER_PATH` | Specifies the path to the DLL of profiler to load into currently running process | `STRING` | `EXTERNAL` | | DontPrependCOMPlus_
@@ -706,21 +701,20 @@ Name | Description | Type | Class | Default Value | Flags
 `CORECLR_PROFILER_PATH_32` | CoreCLR only: Specifies the path to the DLL of profiler to load into currently running 32 process | `STRING` | `EXTERNAL` | | DontPrependCOMPlus_
 `CORECLR_PROFILER_PATH_64` | CoreCLR only: Specifies the path to the DLL of profiler to load into currently running 64 process | `STRING` | `EXTERNAL` | | DontPrependCOMPlus_
 `ETW_ObjectAllocationEventsPerTypePerSec` | Desired number of GCSampledObjectAllocation ETW events to be logged per type per second.  If 0, then the default built in to the implementation for the enabled event (e.g., High, Low), will be used. | `STRING` | `UNSUPPORTED` | | REGUTIL_default
-`ETWEnabled` | This flag is used on OSes < Vista to enable/disable ETW. It is disabled by default | `DWORD` | `EXTERNAL` | `0` | REGUTIL_default
-`MsBetweenAttachCheck` |  | `DWORD` | `EXTERNAL` | `500` |
+`NativeImagePerfMapFormat` | Specifies the format of native image perfmap files generated by crossgen.  Valid options are RVA or OFFSET. | `STRING` | `EXTERNAL` | |
 `PerfMapEnabled` | This flag is used on Linux to enable writing /tmp/perf-$pid.map. It is disabled by default | `DWORD` | `EXTERNAL` | `0` | REGUTIL_default
-`PerfMapJitDumpPath` | Specifies a path to write the perf jitdump file. Defaults to GetTempPathA() | `STRING` | `EXTERNAL` | | REGUTIL_default
 `PerfMapIgnoreSignal` | When perf map is enabled, this option will configure the specified signal to be accepted and ignored as a marker in the perf logs.  It is disabled by default | `DWORD` | `EXTERNAL` | `0` | REGUTIL_default
-`ProfAPI_AttachProfilerMinTimeoutInMs` | Timeout in ms for the minimum time out value of AttachProfiler | `DWORD` | `EXTERNAL` | `10*1000` |
+`PerfMapJitDumpPath` | Specifies a path to write the perf jitdump file. Defaults to GetTempPathA() | `STRING` | `EXTERNAL` | | REGUTIL_default
+`PerfMapShowOptimizationTiers` | Shows optimization tiers in the perf map for methods, as part of the symbol name. Useful for seeing separate stack frames for different optimization tiers of each method. | `DWORD` | `EXTERNAL` | `1` |
 `ProfAPI_DetachMaxSleepMs` | The maximum time, in milliseconds, the CLR will wait before checking whether a profiler that is in the process of detaching is ready to be unloaded. | `DWORD` | `EXTERNAL` | `0` |
 `ProfAPI_DetachMinSleepMs` | The minimum time, in milliseconds, the CLR will wait before checking whether a profiler that is in the process of detaching is ready to be unloaded. | `DWORD` | `EXTERNAL` | `0` |
 `ProfAPI_EnableRejitDiagnostics` | Enable extra dumping to stdout of rejit structures | `DWORD` | `INTERNAL` | `0` |
+`ProfApi_InliningTracking` | Enables the runtime's tracking of inlining for profiler ReJIT. | `DWORD` | `EXTERNAL` | `1` |
 `ProfAPI_ProfilerCompatibilitySetting` | Specifies the profiler loading policy (the default is not to load a V2 profiler in V4) | `STRING` | `EXTERNAL` | | REGUTIL_default \| TrimWhiteSpaceFromStringValue
 `ProfApi_RejitOnAttach` | Enables the ability for profilers to rejit methods on attach. | `DWORD` | `EXTERNAL` | `1` |
 `ProfAPI_TestOnlyEnableICorProfilerInfo` | Test-only flag to allow attaching profiler tests to call ICorProfilerInfo interface, which would otherwise be disallowed for attaching profilers | `DWORD` | `INTERNAL` | `0` |
 `ProfAPI_ValidateNGENInstrumentation` | This flag enables additional validations when using the IMetaDataEmit APIs for NGEN'ed images to ensure only supported edits are made. | `DWORD` | `UNSUPPORTED` | `0` |
 `ProfAPIFault` | Test-only bitmask to inject various types of faults in the profapi code | `DWORD` | `INTERNAL` | `0` |
-`ProfAPIMaxWaitForTriggerMs` | Timeout in ms for profilee to wait for each blocking operation performed by trigger app. | `DWORD` | `EXTERNAL` | `5*60*1000` |
 `StartupDelayMS` |  | `STRING` | `EXTERNAL` | |
 `TestOnlyAllowedEventMask` | Test-only bitmask to allow profiler tests to override CLR enforcement of COR_PRF_ALLOWABLE_AFTER_ATTACH and COR_PRF_MONITOR_IMMUTABLE | `DWORD` | `INTERNAL` | `0` |
 `TestOnlyEnableObjectAllocatedHook` | Test-only flag that forces CLR to initialize on startup as if ObjectAllocated callback were requested, to enable post-attach ObjectAllocated functionality. | `DWORD` | `INTERNAL` | `0` |
@@ -802,7 +796,7 @@ Name | Description | Type | Class | Default Value | Flags
 `TC_CallCountingDelayMs` | A perpetual delay in milliseconds that is applied call counting in tier 0 and jitting at higher tiers, while there is startup-like activity. | `DWORD` | `INTERNAL` | `100` |
 `TC_CallCountThreshold` | Number of times a method must be called in tier 0 after which it is promoted to the next tier. | `DWORD` | `INTERNAL` | `30` |
 `TC_DelaySingleProcMultiplier` | Multiplier for TC_CallCountingDelayMs that is applied on a single-processor machine or when the process is affinitized to a single processor. | `DWORD` | `INTERNAL` | `10` |
-`TC_QuickJit` | For methods that would be jitted, enable using quick JIT when appropriate. | `DWORD` | `EXTERNAL` | `0` |
+`TC_QuickJit` | For methods that would be jitted, enable using quick JIT when appropriate. | `DWORD` | `EXTERNAL` | `1` |
 `TC_QuickJitForLoops` | When quick JIT is enabled, quick JIT may also be used for methods that contain loops. | `DWORD` | `UNSUPPORTED` | `0` |
 `TieredCompilation` | Enables tiered compilation | `DWORD` | `EXTERNAL` | `1` |
 
@@ -905,7 +899,6 @@ Name | Description | Type | Class | Default Value | Flags
 
 Name | Description | Type | Class | Default Value | Flags
 -----|-------------|------|-------|---------------|-------
-`DebugAssertOnMissedCOWPage` |  | `DWORD` | `INTERNAL` | `1` |
 `EnableEventLog` | Enable/disable use of EnableEventLogging mechanism  | `DWORD` | `EXTERNAL` | `0` |
 `EventNameFilter` |  | `STRING` | `INTERNAL` | |
 `EventSourceFilter` |  | `STRING` | `INTERNAL` | |
@@ -916,7 +909,6 @@ Name | Description | Type | Class | Default Value | Flags
 `ZapBBInstrDir` |  | `STRING` | `EXTERNAL` | |
 `ZapDisable` |  | `DWORD` | `EXTERNAL` | `0` |
 `ZapExclude` |  | `STRING` | `INTERNAL` | | REGUTIL_default
-`ZapLazyCOWPagesEnabled` |  | `DWORD` | `INTERNAL` | `1` |
 `ZapOnly` |  | `STRING` | `INTERNAL` | | REGUTIL_default
 `ZapRequire` |  | `DWORD` | `EXTERNAL` | |
 `ZapRequireExcludeList` |  | `STRING` | `EXTERNAL` | |

I bet this is a combination of editing the file directly (things would get lost) and not editing the file at all (new additions in the diff). I think it requires a bit of digging on if the removed items should actually be removed vs. were not added in the script-friendly way to clrconfigvalues.h.

In the TOC, note that [ARM Configuration Knobs](#arm-configuration-knobs) actually doesn't exist...it's a dead link today. Anyway, just discovery while doing this - is cleanup wanted there or is the generation model intended to be abandoned?

cc @Maoni0 @richlander

The current docs are a bit confusing between global and per-heap. This clarifies that and aligns the GC bits between clrconfigvalues.h and clr-configuration-knobs.md (intended to be generated, but not actually matching at the moment).
@Maoni0
Copy link
Copy Markdown
Member

Maoni0 commented Oct 31, 2019

I would be completely ok not having this process of generating the .md from the header - for anyone who is interested in this doc it's the same amount of work to read the header so I dunno what value this generating process adds. and we get into this problem of the doc being out of sync from the header 'cause whatever that does the generation wasn't run. also it'd be nice to have one place that describes which version(s) each config is available in instead of having to look at the generated .md for each version.

@jkotas
Copy link
Copy Markdown
Member

jkotas commented Oct 31, 2019

Related discussion: #25657 (comment)

@Maoni0
Copy link
Copy Markdown
Member

Maoni0 commented Oct 31, 2019

there's also #12959 in doc repo. we should just get rid of the doc in our repo and work on it there perhaps? @mariaw, where do you view the files being changed in that doc PR?

@jkotas jkotas added the area-GC label Nov 2, 2019
@maryamariyan
Copy link
Copy Markdown

Thank you for your contribution. As announced in dotnet/coreclr#27549 this repository will be moving to dotnet/runtime on November 13. If you would like to continue working on this PR after this date, the easiest way to move the change to dotnet/runtime is:

  1. In your coreclr repository clone, create patch by running git format-patch origin
  2. In your runtime repository clone, apply the patch by running git apply --directory src/coreclr <path to the patch created in step 1>

@sergiy-k
Copy link
Copy Markdown

Hi @NickCraver, would mind updating your PR to change only the clrconfigvalues.h file and I'll merge it?

@maryamariyan
Copy link
Copy Markdown

Thank you for your contribution. As announced in #27549 the dotnet/runtime repository will be used going forward for changes to this code base. Closing this PR as no more changes will be accepted into master for this repository. If you’d like to continue working on this change please move it to dotnet/runtime.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants