diff --git a/src/benchmarks/gc/GC.Infrastructure/GC.Analysis.API/DynamicEvents/DynamicEvents.cs b/src/benchmarks/gc/GC.Infrastructure/GC.Analysis.API/DynamicEvents/DynamicEvents.cs index d827d6138b3..57d7f1b2806 100644 --- a/src/benchmarks/gc/GC.Infrastructure/GC.Analysis.API/DynamicEvents/DynamicEvents.cs +++ b/src/benchmarks/gc/GC.Infrastructure/GC.Analysis.API/DynamicEvents/DynamicEvents.cs @@ -32,6 +32,8 @@ public sealed class DynamicEventSchema // These are the dynamic events that are currently emitted from the runtime. { GCDynamicEvents.SizeAdaptationSampleSchema.DynamicEventName, Compile(GCDynamicEvents.SizeAdaptationSampleSchema) }, { GCDynamicEvents.SizeAdaptationTuningSchema.DynamicEventName, Compile(GCDynamicEvents.SizeAdaptationTuningSchema) }, + { GCDynamicEvents.SizeAdaptationFullGCTuningSchema.DynamicEventName, Compile(GCDynamicEvents.SizeAdaptationFullGCTuningSchema) }, + { GCDynamicEvents.OOMDetailsSchema.DynamicEventName, Compile(GCDynamicEvents.OOMDetailsSchema) }, }; internal static bool allowPartialSchema; diff --git a/src/benchmarks/gc/GC.Infrastructure/GC.Analysis.API/DynamicEvents/GCDynamicEvents.cs b/src/benchmarks/gc/GC.Infrastructure/GC.Analysis.API/DynamicEvents/GCDynamicEvents.cs index cc6b289af2d..798e7b894eb 100644 --- a/src/benchmarks/gc/GC.Infrastructure/GC.Analysis.API/DynamicEvents/GCDynamicEvents.cs +++ b/src/benchmarks/gc/GC.Infrastructure/GC.Analysis.API/DynamicEvents/GCDynamicEvents.cs @@ -43,5 +43,42 @@ internal static class GCDynamicEvents KeyValuePair.Create("AdjMetric", typeof(bool)) } }; + + public static DynamicEventSchema SizeAdaptationFullGCTuningSchema = new DynamicEventSchema + { + DynamicEventName = "SizeAdaptationFullGCTuning", + Fields = new List> + { + KeyValuePair.Create("version", typeof(ushort)), + KeyValuePair.Create("NewNHeaps", typeof(ushort)), + KeyValuePair.Create("CurrentGCIndex", typeof(ulong)), + KeyValuePair.Create("MedianThroughputCostPercent", typeof(float)), + KeyValuePair.Create("NumGcsSinceLastChange", typeof(uint)), + KeyValuePair.Create("DiffSamples0", typeof(uint)), + KeyValuePair.Create("GcPercent0", typeof(float)), + KeyValuePair.Create("DiffSamples1", typeof(uint)), + KeyValuePair.Create("GcPercent1", typeof(float)), + KeyValuePair.Create("DiffSamples2", typeof(uint)), + KeyValuePair.Create("GcPercent2", typeof(float)), + } + }; + + public static DynamicEventSchema OOMDetailsSchema = new DynamicEventSchema + { + DynamicEventName = "OOMDetails", + Fields = new List> + { + KeyValuePair.Create("version", typeof(ushort)), + KeyValuePair.Create("GCIndex", typeof(ulong)), + KeyValuePair.Create("AllocSize", typeof(ulong)), + KeyValuePair.Create("Reason", typeof(byte)), + KeyValuePair.Create("FailureGetMemory", typeof(byte)), + KeyValuePair.Create("Size", typeof(ulong)), + KeyValuePair.Create("IsLOH", typeof(byte)), + KeyValuePair.Create("MemoryLoad", typeof(uint)), + KeyValuePair.Create("AvailablePageMemoryMB", typeof(ulong)), + }, + MaxOccurrence = 1000 // TODO: This should be the max of the number of heaps allowed. + }; } }