mbox series

[v4,0/5] Update CoreSight infrastructure to select a default sink.

Message ID 20200526104642.9526-1-mike.leach@linaro.org (mailing list archive)
Headers show
Series Update CoreSight infrastructure to select a default sink. | expand

Message

Mike Leach May 26, 2020, 10:46 a.m. UTC
This patchset provides a proposed infrastructure to allow for the automatic
selection of a sink during CoreSight tracing operations.

Currently starting tracing using perf requires a sink selection on the
command line:-

sudo ./perf record -e cs_etm/@tmc_etr0/ --per-thread uname -a

After this set (and the follow-up perf change set) the infrastructure will
be able to select a default sink:-

sudo ./perf record -e cs_etm// --per-thread uname -a

This matches with the default operation provided with perf and intelpt.

Where no sink is specified at the start of a trace session, the CoreSight
system will walk the connection graph from the source ETM, to find a
suitable sink using the first encountered highest priority device.

The CoreSight infrastructure is updated to define sink sub_types to
differentiate between sinks with built in buffers (ETB / ETF) - BUFFER
type, and those that use system memory (ETR) - SYSMEM - types.

SYSMEM types are considered higher priority.

When two sinks are found of equal priority, then the closest sink to the
source in terms of connection nodes is chosen.

The automatic sink selection will also operate if an ETM is enabled using
sysfs commands, and no sink is currently enabled.

Applies to Linux coresight/next branch

Changes since v3:
1) Removed RFC designation and distributed to wider audience.
2) Split set into CoreSight driver code (this set), and perf user runtime set.
3) Minor cosmetic changes.

Mike Leach (5):
  coresight: Fix comment in main header file.
  coresight: Add default sink selection to CoreSight base
  coresight: tmc: Update sink types for default selection.
  coresight: etm: perf: Add default sink selection to etm perf
  coresight: sysfs: Allow select default sink on source enable.

 .../hwtracing/coresight/coresight-etm-perf.c  |  17 +-
 drivers/hwtracing/coresight/coresight-priv.h  |   2 +
 drivers/hwtracing/coresight/coresight-tmc.c   |   3 +-
 drivers/hwtracing/coresight/coresight.c       | 147 +++++++++++++++++-
 include/linux/coresight.h                     |   6 +-
 5 files changed, 168 insertions(+), 7 deletions(-)