[PATCHv2 0/4] coresight: Add ETR-PERF polling.

Daniel Kiss
2021-07-13T12:17:38Z

This series adds a feature to ETR-PERF that sync the ETR buffer to perf
periodically. This is really handy when the system wide trace is used
because in this case the perf won't sync during the trace. In a per-thread
setup the traced program might not go to the kernel frequvently enought
to collect trace. Polling helps in both usecases. Can be used with strobing.
Tuning polling period is challanging, I'm working on an additional patch
that adds some metrics to help tune the polling period.

Changes from v1:
* tmc-etr: Advance buffer pointer in sync buffer refactored to use the buffer directly
* New config option to enable polling.
* Code of polling is simplified based on the commments.
* Fix event allocation issue by changing to GFP_ATOMIC.

Daniel Kiss (4):
coresight: tmc-etr: Use handle->head from perf_output_handle directly.
coresight: tmc-etr: Track perf handler.
coresight: etm-perf: Export etm_event_cpu_path.
coresight: Add ETR-PERF polling.

.../testing/sysfs-bus-coresight-devices-tmc | 8 +
drivers/hwtracing/coresight/Kconfig | 12 +
drivers/hwtracing/coresight/Makefile | 1 +
.../hwtracing/coresight/coresight-etm-perf.c | 10 +-
.../hwtracing/coresight/coresight-etm-perf.h | 1 +
.../coresight/coresight-etr-perf-polling.c | 275 ++++++++++++++++++
.../coresight/coresight-etr-perf-polling.h | 38 +++
.../hwtracing/coresight/coresight-tmc-core.c | 4 +
.../hwtracing/coresight/coresight-tmc-etr.c | 32 +-
drivers/hwtracing/coresight/coresight-tmc.h | 2 +
10 files changed, 372 insertions(+), 11 deletions(-)
create mode 100644 drivers/hwtracing/coresight/coresight-etr-perf-polling.c
create mode 100644 drivers/hwtracing/coresight/coresight-etr-perf-polling.h

--
2.25.1