[PATCH 0/2] coresight: Add barrier packet when moving offset forward

From: Mathieu Poirier
Date: Thu Aug 22 2019 - 18:09:19 EST


Hi Yabin,

When doing more tests on your patch that adjust the offset to fit the
available space in the perf ring buffer[1], I noticed the decoder wasn't
able to decode the traces that had been collected. The issue was observed
in CPU wide scenarios but I also suspect they would have showed up in
per-thread mode given the right conditions.

I traced the problem to the moving forward of the offset in the trace
buffer. Doing so skips over the barrier packets originally inserted in
function tmc_sync_etr_buf(), which in turn prevents the decoder from
properly synchronising with the trace packets.

I fixed the condition by inserting barrier packets once the offset has been
moved forward, making sure that alignment rules are respected.

I'd be grateful if you could review and test my changes to make sure things
still work on your side.

Applies cleanly on the coresight next branch.

Best regards,
Mathieu

[1]. https://lkml.org/lkml/2019/8/14/1336


Mathieu Poirier (2):
coresight: tmc: Make memory width mask computation into a function
coresight: tmc-etr: Add barrier packet when moving offset forward

.../hwtracing/coresight/coresight-tmc-etf.c | 23 +---------
.../hwtracing/coresight/coresight-tmc-etr.c | 43 ++++++++++++++-----
drivers/hwtracing/coresight/coresight-tmc.c | 28 ++++++++++++
drivers/hwtracing/coresight/coresight-tmc.h | 1 +
4 files changed, 64 insertions(+), 31 deletions(-)

--
2.17.1