Perf + Opencsd (aarch64) Off Target Trace Decoding shows "could not read first record/send request"
Suzuki K Poulose
suzuki.poulose at arm.com
Tue Jul 11 03:40:53 PDT 2023
On 11/07/2023 10:26, Pandey, Radhey Shyam wrote:
> Hi all,
>
> I am trying off Target Trace Decoding using arm-cs-trace-disasm.py but
> it doesn’t show
>
> proper disassembly. There is unexpected warning "could not read first
> record".
>
> Any pointers on what the issue could be?
>
> Meanwhile I am trying to do trace decoding on aarch64 target and see if
> that helps.
>
> I have taken simple example mentioned in [1].
>
> [1]:
> http://events17.linuxfoundation.org/sites/events/files/slides/ELC-E16.pdf <http://events17.linuxfoundation.org/sites/events/files/slides/ELC-E16.pdf>
>
> #include int coresight_test1(int val);
>
> int main(void) {
>
> int val; val = coresight_test1(10);
>
> printf("val: %d\n", val);
>
> return 0;
>
> }
>
> perf record -e cs_etm/@tmc_etf0/u --filter
> 'filter0x5a8/0x5e4@/home/root/libcstest.so.1.0' --per-thread ./main
>
> tar czf cs_example.tgz perf.data ~/.debug
>
> Off Target Trace Decoding: “perf report”
>
> tar xf cs_example.tgz
>
> $ rm -rf ~/.debug // remove previous trace data
>
> $ cp -dpR .debug ~/ // copy the current trace data
>
> $ perf report --stdio
>
> linux-xlnx/tools/perf/perf --exec-path= <snip>/linux-xlnx/tools/perf
> script tools/perf/scripts/python/arm-cs-trace-disasm.py -- -d
> ${XTOOL_PATH}/aarch64-linux-gnu-objdump -v
>
I believe the perf script doesn't work with coresight trace decoding
as we need a two pass approach for decoding the stream for figuring out
the parameters for the queues. James Clark can give you the exact reason.
Suzuki
> ARM CoreSight Trace Data Assembler Dump
>
> addr2line /home/root/libcstest.so.1.0: could not read first record
>
> main 748/748 [0000] 0.000000000
> ffffad8c05d8 /home/root/libcstest.so.1.0
>
> addr2line /home/root/libcstest.so.1.0: could not send request
>
> main 748/748 [0000] 0.000000000 ffffad8c05d8
>
> addr2line /home/root/libcstest.so.1.0: could not send request
>
> main 748/748 [0000] 0.000000000 ffffad8c05d8
>
> addr2line /home/root/libcstest.so.1.0: could not send request
>
> main 748/748 [0000] 0.000000000 ffffad8c05d8
>
> addr2line /home/root/libcstest.so.1.0: could not send request
>
> main 748/748 [0000] 0.000000000 ffffad8c05d8
>
> addr2line /home/root/libcstest.so.1.0: could not send request
>
> main 748/748 [0000] 0.000000000 ffffad8c05e4
>
> End
>
> tools/perf/perf report -D
>
> <snip>
>
> 0x680 [0x30]: PERF_RECORD_AUXTRACE size: 0x90 offset: 0 ref:
> 0x2890bdbd7cad6b6f idx: 0 tid: 748 cpu: -1
>
> . ... CoreSight ETMV4I Trace data: size 0x20 bytes
>
> Idx:0; ID:10; I_ASYNC : Alignment Synchronisation.
>
> Idx:12; ID:10; I_TRACE_INFO : Trace Info.; INFO=0x0 { CC.0 }
>
> . ... CoreSight ETMV4I Trace data: size 0x20 bytes
>
> Idx:32; ID:10; I_ASYNC : Alignment Synchronisation.
>
> Idx:44; ID:10; I_TRACE_INFO : Trace Info.; INFO=0x0 { CC.0 }
>
> . ... CoreSight ETMV4I Trace data: size 0x50 bytes
>
> Idx:64; ID:10; I_ASYNC : Alignment Synchronisation.
>
> Idx:76; ID:10; I_TRACE_INFO : Trace Info.; INFO=0x0 { CC.0 }
>
> Idx:81; ID:10; I_TRACE_ON : Trace On.
>
> Idx:82; ID:10; I_ADDR_CTXT_L_64IS0 : Address & Context, Long,
> 64 bit, IS0.; Addr=0x0000FFFFAD8C05A8; Ctxt: AArch64,EL0, NS;
>
> Idx:92; ID:10; I_ATOM_F6 : Atom format 6.; EEEEEEN
>
> Idx:93; ID:10; I_ATOM_F1 : Atom format 1.; E
>
> Idx:94; ID:10; I_ADDR_L_64IS0 : Address, Long, 64 bit, IS0.;
> Addr=0x0000AAAAAC9107E8;
>
> Idx:104; ID:10; I_TRACE_ON : Trace On.
>
> Idx:105; ID:10; I_ADDR_CTXT_L_64IS0 : Address & Context, Long,
> 64 bit, IS0.; Addr=0x0000FFFFAD8C05E8; Ctxt: AArch64,EL0, NS;
>
> Idx:116; ID:10; I_ATOM_F1 : Atom format 1.; E
>
> Idx:117; ID:10; I_ADDR_L_64IS0 : Address, Long, 64 bit, IS0.;
> Addr=0x0000FFFFAD8EB4E4;
>
> 0x740 at perf.data <mailto:0x740 at perf.data> [0x8]: event: 68
>
> .
>
> . ... raw event: size 8 bytes
>
> . 0000: 44 00 00 00 00 00 08 00 D.......
>
> 0x740 [0x8]: PERF_RECORD_FINISHED_ROUND
>
> Aggregated stats: (excludes AUX area (e.g. instruction trace) decoded /
> synthesized events)
>
> Thanks,
>
> Radhey
>
More information about the linux-arm-kernel
mailing list