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(-)