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

From: Ganapatrao Kulkarni
Date: Wed Sep 18 2024 - 07:23:35 EST



Hi James,

On 16-09-2024 07:27 pm, 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/


Tried this series with below commands and issue is not seen as reported in [1].

record:
timeout 8s ./perf record -e cs_etm// -C 1 -o kcore --kcore dd if=/dev/zero of=/dev/null

decode:
./perf script -i ./kcore -s scripts/python/arm-cs-trace-disasm.py -- -d objdump -k kcore/kcore_dir/kcore

./perf script -i ./kcore -s scripts/python/arm-cs-trace-disasm.py -F cpu,event,ip,addr,sym -- -d objdump -k kcore/kcore_dir/kcore

Feel free to add for 1/7 and 2/7.
Tested-by: Ganapatrao Kulkarni <gankulkarni@xxxxxxxxxxxxxxxxxxxxxx>

Changes since V2:
* Check validity of start stop arguments
* Make test work if Perf was installed
* Document that start and stop time are monotonic clock values

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 | 127 ++++++++++++++----
.../tests/shell/test_arm_coresight_disasm.sh | 65 +++++++++
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, 225 insertions(+), 35 deletions(-)
create mode 100755 tools/perf/tests/shell/test_arm_coresight_disasm.sh


--
Thanks,
Ganapat/GK