Message ID | 20240916135743.1490403-1-james.clark@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | perf: cs-etm: Coresight decode and disassembly improvements | expand |
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@os.amperecomputing.com/ > 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@os.amperecomputing.com> > 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 >
On 18/09/2024 12:23 pm, Ganapatrao Kulkarni wrote: > > 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@os.amperecomputing.com/ >> > > 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@os.amperecomputing.com> > Thanks for testing!
On Mon, 16 Sep 2024 14:57:31 +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()) > > [...] Applied to perf-tools-next, thanks! Best regards, Namhyung