mbox series

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

Message ID 20190822220915.8876-1-mathieu.poirier@linaro.org
Headers show
Series coresight: Add barrier packet when moving offset forward | expand

Message

Mathieu Poirier Aug. 22, 2019, 10:09 p.m. UTC
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

Comments

Yabin Cui Aug. 24, 2019, 12:30 a.m. UTC | #1
Thanks for fixing this problem. I didn't realize it because I usually use a
buffer size >= the default ETR buffer size, which is harder to reproduce the
problem.
The patches LGTM, maybe you also want to fix the problem commented by Leo Yan.
I tested the patches by recording etm data with a buffer size smaller than the
default ETR buffer size. Then I saw barrier packets when decoding with OpenCSD.
And I could decode successfully without error message.
Mathieu Poirier Aug. 26, 2019, 2:59 p.m. UTC | #2
Hi Yabin,

On Fri, 23 Aug 2019 at 18:30, Yabin Cui <yabinc@google.com> wrote:
>

> Thanks for fixing this problem. I didn't realize it because I usually use a

> buffer size >= the default ETR buffer size, which is harder to reproduce the

> problem.

> The patches LGTM, maybe you also want to fix the problem commented by Leo Yan.


I will look into the issue reported by Leo later today.

> I tested the patches by recording etm data with a buffer size smaller than the

> default ETR buffer size. Then I saw barrier packets when decoding with OpenCSD.

> And I could decode successfully without error message.


Can I add your Tested-by ?
Yabin Cui Aug. 26, 2019, 6:52 p.m. UTC | #3
> Can I add your Tested-by ?


Yes. I just sent a tested-by reply, but not sure if it works. I am not very familar
with linux kernel review system.