From: Sung Yoon Whang Date: Tue, 25 Jun 2019 09:47:48 +0000 (-0700) Subject: Fix broken ETW events (#25364) X-Git-Tag: accepted/tizen/unified/20190813.215958~40^2~35 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3eac718c85cde9121fb5f03da58bb949914b51e1;p=platform%2Fupstream%2Fcoreclr.git Fix broken ETW events (#25364) --- diff --git a/src/inc/eventtracebase.h b/src/inc/eventtracebase.h index aad69b9..bda2262 100644 --- a/src/inc/eventtracebase.h +++ b/src/inc/eventtracebase.h @@ -79,14 +79,14 @@ enum EtwThreadFlags // if the fields in the event are not cheap to calculate // #define ETW_EVENT_ENABLED(Context, EventDescriptor) \ - ((MCGEN_ENABLE_CHECK(Context.EtwProvider, EventDescriptor)) || EventPipeHelper::IsEnabled(Context, EventDescriptor.Level, EventDescriptor.Keyword)) + ((Context.EtwProvider->IsEnabled && McGenEventXplatEnabled(Context.EtwProvider, &EventDescriptor)) || EventPipeHelper::IsEnabled(Context, EventDescriptor.Level, EventDescriptor.Keyword)) // // Use this macro to check if a category of events is enabled // #define ETW_CATEGORY_ENABLED(Context, Level, Keyword) \ - ((Context.EtwProvider.IsEnabled && McGenEventProviderEnabled(&(Context.EtwProvider), Level, Keyword)) || EventPipeHelper::IsEnabled(Context, Level, Keyword)) + ((Context.EtwProvider->IsEnabled && McGenEventProviderEnabled(Context.EtwProvider, Level, Keyword)) || EventPipeHelper::IsEnabled(Context, Level, Keyword)) // This macro only checks if a provider is enabled @@ -178,7 +178,7 @@ struct ProfilingScanContext; // Use this macro to check if ETW is initialized and the event is enabled // #define ETW_TRACING_ENABLED(Context, EventDescriptor) \ - ((Context.EtwProvider.IsEnabled && ETW_TRACING_INITIALIZED(Context.EtwProvider.RegistrationHandle) && ETW_EVENT_ENABLED(Context, EventDescriptor))|| \ + ((Context.EtwProvider->IsEnabled && ETW_TRACING_INITIALIZED(Context.EtwProvider->RegistrationHandle) && ETW_EVENT_ENABLED(Context, EventDescriptor))|| \ EventPipeHelper::IsEnabled(Context, EventDescriptor.Level, EventDescriptor.Keyword)) // @@ -190,7 +190,7 @@ struct ProfilingScanContext; // Use this macro to check if ETW is initialized and the category is enabled // #define ETW_TRACING_CATEGORY_ENABLED(Context, Level, Keyword) \ - (ETW_TRACING_INITIALIZED(Context.EtwProvider.RegistrationHandle) && ETW_CATEGORY_ENABLED(Context, Level, Keyword)) + (ETW_TRACING_INITIALIZED(Context.EtwProvider->RegistrationHandle) && ETW_CATEGORY_ENABLED(Context, Level, Keyword)) #define ETWOnStartup(StartEventName, EndEventName) \ ETWTraceStartup trace##StartEventName##(Microsoft_Windows_DotNETRuntimePrivateHandle, &StartEventName, &StartupId, &EndEventName, &StartupId); diff --git a/src/scripts/genEventing.py b/src/scripts/genEventing.py index 83109a5..bdc1d88 100644 --- a/src/scripts/genEventing.py +++ b/src/scripts/genEventing.py @@ -555,7 +555,7 @@ typedef struct _EVENTPIPE_TRACE_CONTEXT #define DOTNET_TRACE_CONTEXT_DEF typedef struct _DOTNET_TRACE_CONTEXT { - MCGEN_TRACE_CONTEXT EtwProvider; + PMCGEN_TRACE_CONTEXT EtwProvider; EVENTPIPE_TRACE_CONTEXT EventPipeProvider; } DOTNET_TRACE_CONTEXT, *PDOTNET_TRACE_CONTEXT; #endif // DOTNET_TRACE_CONTEXT_DEF @@ -572,13 +572,13 @@ typedef struct _DOTNET_TRACE_CONTEXT """ trace_context_instdef_windows = """ -EXTERN_C __declspec(selectany) DOTNET_TRACE_CONTEXT MICROSOFT_WINDOWS_DOTNETRUNTIME_PROVIDER_DOTNET_Context = { MICROSOFT_WINDOWS_DOTNETRUNTIME_PROVIDER_Context, MICROSOFT_WINDOWS_DOTNETRUNTIME_PROVIDER_EVENTPIPE_Context }; +EXTERN_C __declspec(selectany) DOTNET_TRACE_CONTEXT MICROSOFT_WINDOWS_DOTNETRUNTIME_PROVIDER_DOTNET_Context = { &MICROSOFT_WINDOWS_DOTNETRUNTIME_PROVIDER_Context, MICROSOFT_WINDOWS_DOTNETRUNTIME_PROVIDER_EVENTPIPE_Context }; -EXTERN_C __declspec(selectany) DOTNET_TRACE_CONTEXT MICROSOFT_WINDOWS_DOTNETRUNTIME_PRIVATE_PROVIDER_DOTNET_Context = { MICROSOFT_WINDOWS_DOTNETRUNTIME_PRIVATE_PROVIDER_Context, MICROSOFT_WINDOWS_DOTNETRUNTIME_PRIVATE_PROVIDER_EVENTPIPE_Context }; +EXTERN_C __declspec(selectany) DOTNET_TRACE_CONTEXT MICROSOFT_WINDOWS_DOTNETRUNTIME_PRIVATE_PROVIDER_DOTNET_Context = { &MICROSOFT_WINDOWS_DOTNETRUNTIME_PRIVATE_PROVIDER_Context, MICROSOFT_WINDOWS_DOTNETRUNTIME_PRIVATE_PROVIDER_EVENTPIPE_Context }; -EXTERN_C __declspec(selectany) DOTNET_TRACE_CONTEXT MICROSOFT_WINDOWS_DOTNETRUNTIME_RUNDOWN_PROVIDER_DOTNET_Context = { MICROSOFT_WINDOWS_DOTNETRUNTIME_RUNDOWN_PROVIDER_Context, MICROSOFT_WINDOWS_DOTNETRUNTIME_RUNDOWN_PROVIDER_EVENTPIPE_Context }; +EXTERN_C __declspec(selectany) DOTNET_TRACE_CONTEXT MICROSOFT_WINDOWS_DOTNETRUNTIME_RUNDOWN_PROVIDER_DOTNET_Context = { &MICROSOFT_WINDOWS_DOTNETRUNTIME_RUNDOWN_PROVIDER_Context, MICROSOFT_WINDOWS_DOTNETRUNTIME_RUNDOWN_PROVIDER_EVENTPIPE_Context }; -EXTERN_C __declspec(selectany) DOTNET_TRACE_CONTEXT MICROSOFT_WINDOWS_DOTNETRUNTIME_STRESS_PROVIDER_DOTNET_Context = { MICROSOFT_WINDOWS_DOTNETRUNTIME_STRESS_PROVIDER_Context, MICROSOFT_WINDOWS_DOTNETRUNTIME_STRESS_PROVIDER_EVENTPIPE_Context }; +EXTERN_C __declspec(selectany) DOTNET_TRACE_CONTEXT MICROSOFT_WINDOWS_DOTNETRUNTIME_STRESS_PROVIDER_DOTNET_Context = { &MICROSOFT_WINDOWS_DOTNETRUNTIME_STRESS_PROVIDER_Context, MICROSOFT_WINDOWS_DOTNETRUNTIME_STRESS_PROVIDER_EVENTPIPE_Context }; """ trace_context_instdef_unix = """