[Local GC] FEATURE_EVENT_TRACE 1/n: Tracking Event State (#15873)
authorSean Gillespie <segilles@microsoft.com>
Wed, 24 Jan 2018 02:53:30 +0000 (18:53 -0800)
committerGitHub <noreply@github.com>
Wed, 24 Jan 2018 02:53:30 +0000 (18:53 -0800)
commitfacdc8b97f73973fb416ed13e4b9dd9a255864bf
treec6be1ef07de8d324dcb121da524c13458d7f0f63
parent0bafdbc71e5a3efe6b6df0cbcf5aee5081a3e4c8
[Local GC] FEATURE_EVENT_TRACE 1/n: Tracking Event State (#15873)

* [Local GC] FEATURE_EVENT_TRACE 1/n: Add infrastructure for keeping event state within the GC and plumbing to communicate event state changes

* Code review feedback: use a load without a barrier in IsEnabled and put debug-only code under TRACE_GC_EVENT_STATE

* Address code review feedback: add EventPipe callback and comments

* Fix the non-FEATURE_PAL build

* Fix an issue where the GC fails to react to ETW callbacks to occur before the GC is initialized (e.g. on startup when an ETW session is already active)

* Simplify callback locking scheme

* Add a separate callback for each EventPipe provider and funnel them all through a common handler

* Fix non-FEATURE_PAL build
19 files changed:
src/gc/CMakeLists.txt
src/gc/env/gcenv.h
src/gc/env/gcenv.object.h
src/gc/env/gcenv.sync.h
src/gc/gcee.cpp
src/gc/gceesvr.cpp
src/gc/gceewks.cpp
src/gc/gceventstatus.cpp [new file with mode: 0644]
src/gc/gceventstatus.h [new file with mode: 0644]
src/gc/gcimpl.h
src/gc/gcinterface.h
src/gc/sample/CMakeLists.txt
src/gc/sample/gcenv.h
src/inc/eventtracebase.h
src/scripts/genEventPipe.py
src/vm/CMakeLists.txt
src/vm/eventtrace.cpp
src/vm/gcheaputilities.cpp
src/vm/gcheaputilities.h