Re: [PATCH v2 0/7] perf: cs-etm: Coresight decode and disassembly improvements

From: Arnaldo Carvalho de Melo
Date: Thu Sep 12 2024 - 15:23:30 EST


On Thu, Sep 12, 2024 at 04:11:31PM +0100, James Clark wrote:
> A set of changes that came out of the issues reported here [1].
>
> * First 2 patches fix a decode bug in Perf and add support for new
> consistency checks in OpenCSD
> * The remaining ones make the disassembly script easier to test
> and use. This also involves adding a new Python binding to
> Perf to get a config value (perf_config_get())
>
> [1]: https://lore.kernel.org/linux-arm-kernel/20240719092619.274730-1-gankulkarni@xxxxxxxxxxxxxxxxxxxxxx/

Looks ok from a quick look, but I can't test it, so since there are
reporters for problems that are being fixed, it would be great to have a
Tested-by: from the reporters and probably from someone with access to
the hardware where this can be tested.

- Arnaldo

> Changes since V1:
> * Keep the flush function for discontinuities
> * Still remove the flush when the buffer fills, but now add
> cs_etm__end_block() for the end trace. That way we won't drop
> the last branch stack if the instruction sample period wasn't
> hit at the very end.
>
> James Clark (7):
> perf cs-etm: Don't flush when packet_queue fills up
> perf cs-etm: Use new OpenCSD consistency checks
> perf scripting python: Add function to get a config value
> perf scripts python cs-etm: Update to use argparse
> perf scripts python cs-etm: Improve arguments
> perf scripts python cs-etm: Add start and stop arguments
> perf test: cs-etm: Test Coresight disassembly script
>
> .../perf/Documentation/perf-script-python.txt | 2 +-
> .../scripts/python/Perf-Trace-Util/Context.c | 11 ++
> .../scripts/python/arm-cs-trace-disasm.py | 109 +++++++++++++-----
> .../tests/shell/test_arm_coresight_disasm.sh | 63 ++++++++++
> tools/perf/util/config.c | 22 ++++
> tools/perf/util/config.h | 1 +
> .../perf/util/cs-etm-decoder/cs-etm-decoder.c | 7 +-
> tools/perf/util/cs-etm.c | 25 ++--
> 8 files changed, 205 insertions(+), 35 deletions(-)
> create mode 100755 tools/perf/tests/shell/test_arm_coresight_disasm.sh
>
> --
> 2.34.1