Hi,
These patches add support for using perf inject to generate branch events
and branch stacks from CoreSight ETM traces.
They apply to the recently submitted perf support for CoreSight trace [1]
with the subsequent memory cleanup fix [2]
The first patch is Sebastian's original commits from [3] reworked to
apply to the refactored version now upstreamed, with some fixes for branch
events and my work on branch stacks posted last November [4], updated with
review comments.
The second patch is a new patch that handles discontinuities in the trace
stream, e.g. when the ETM is configured to only trace certain regions or
is only active some of the time.
These probably need to be squashed together before going upstream, but I've
left them as separate commits for initial review.
Regards
Rob Walker
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git
tag perf-core-for-mingo-4.16-20180125
[2]: https://lkml.org/lkml/2018/1/25/432
[3]: https://github.com/Linaro/perf-opencsd/ autoFDO branch
[4]: https://lists.linaro.org/pipermail/coresight/2017-November/000955.html
Robert Walker (2):
perf tools: inject capabilitity for CoreSight traces
perf inject: Emit instruction records on ETM trace discontinuity
Documentation/trace/coresight.txt | 31 ++
tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 68 +++-
tools/perf/util/cs-etm-decoder/cs-etm-decoder.h | 2 +
tools/perf/util/cs-etm.c | 471 +++++++++++++++++++++---
4 files changed, 509 insertions(+), 63 deletions(-)
--
1.9.1