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

Mathieu Poirier
2021-04-26T17:58:18Z

Hi Daniel,

On Wed, Apr 21, 2021 at 02:04:09PM +0200, Daniel Kiss wrote:
> 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.
>

Suzuki and Leo have already commented on a number of problems with this set and
as such I will concentrate on the general idea.

Over the years we have thought long and hard about fixing the overflow issues
created by the lack of interrupt when a sink gets full, installing a timer to
empty the sink buffer at regular intervals is one of them. Ultimately we
haven't moved forward with the idea because it requires to stop the sink when an
event is active, something that introduces more trace data loss.

To me this kind of interval snapshot should be achieved using Mike's new
strobing feature that came bundled with the complex configuration framework,
available on next-ETE-TRBE[1]. I will rebase that branch to 5.13-rc1 when it
is released in a couple of weeks from now.

Thanks,
Mathieu

PS: Always run your work through checkpatch.pl before sending a patchset for
review.

[1]. https://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git/log/?h=next-ETE-TRBE

> Daniel Kiss (4):
> coresight: tmc-etr: Advance buffer pointer in sync buffer.
> 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/Makefile | 2 +-
> .../hwtracing/coresight/coresight-etm-perf.c | 10 +-
> .../hwtracing/coresight/coresight-etm-perf.h | 1 +
> .../coresight/coresight-etr-perf-polling.c | 316 ++++++++++++++++++
> .../coresight/coresight-etr-perf-polling.h | 42 +++
> .../hwtracing/coresight/coresight-tmc-core.c | 2 +
> .../hwtracing/coresight/coresight-tmc-etr.c | 22 +-
> drivers/hwtracing/coresight/coresight-tmc.h | 2 +
> 9 files changed, 401 insertions(+), 4 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