Add optimization tiers to the Linux perf maps for perfcollect (#24967)
authorKoundinya Veluri <kouvel@users.noreply.github.com>
Tue, 11 Jun 2019 06:27:02 +0000 (23:27 -0700)
committerGitHub <noreply@github.com>
Tue, 11 Jun 2019 06:27:02 +0000 (23:27 -0700)
commitd5906ecce405c8ff9476a1ea3d9a297bf5d9991c
tree7d9758b6426e190490f6cd729f92c51f4c692c08
parenta6292a6573e1f7d6e218293773e443280683cd83
Add optimization tiers to the Linux perf maps for perfcollect (#24967)

Add optimization tiers to the Linux perf maps for perfcollect

Fixes https://github.com/dotnet/coreclr/issues/23222:
- It looks like module unloads are currently not taken into account. Once they would be taken into account, Although we have method JIT events from `lttng` with the code address and optimization tier, samples can only be associated with method JIT events by associating the time range when the module is loaded with times of samples, and the event times from `lttng` would not necessarily correspond with times from samples taken by `perf`.
- Updated to include the optimization tier in the perf map for each jitted or R2R method code address
- Refactored common code between eventtrace and perfmap for getting jit tiers
src/inc/clrconfigvalues.h
src/inc/eventtracebase.h
src/vm/eventtrace.cpp
src/vm/method.hpp
src/vm/perfmap.cpp
src/vm/perfmap.h
src/vm/prestub.cpp