Add optimization tiers to the Linux perf maps for perfcollect (dotnet/coreclr#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)
commitb0daee58d37d64369adebd3350ee1e5683032b1b
tree3ba73988e73f8ae172fbc53580acab55b56d3edd
parent6de19cf49d5ebd36648ec469b249a6819cce5010
Add optimization tiers to the Linux perf maps for perfcollect (dotnet/coreclr#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

Commit migrated from https://github.com/dotnet/coreclr/commit/d5906ecce405c8ff9476a1ea3d9a297bf5d9991c
src/coreclr/src/inc/clrconfigvalues.h
src/coreclr/src/inc/eventtracebase.h
src/coreclr/src/vm/eventtrace.cpp
src/coreclr/src/vm/method.hpp
src/coreclr/src/vm/perfmap.cpp
src/coreclr/src/vm/perfmap.h
src/coreclr/src/vm/prestub.cpp