Hi Radhe Shyam
On 05/07/2023 05:38, Pandey, Radhey Shyam wrote:
Hi,
I am using linux 6.1 kernel coresight framework to capture ETM trace. Enabled coresight driver and added coresight component device node in DTS. With that, we could probe all coresight components.
But when we do capture using sysfs and then read the trace.bin using ptm2human we see invalid trace data. Trace content changes on each capture. Any pointers to help narrow down the issue?
Tried: sysfs capture and perf (with OpenCSD enabled)
Development board: VCK190 : https://docs.xilinx.com/r/en-US/ug1366-vck190-eval-bd https://www.xilinx.com/support/documents/architecture-manuals/am011-versal-a...
xilinx-vck190-20231:/home/petalinux# dmesg | grep -i amba [ 0.301054] Serial: AMBA PL011 UART driver [ 0.306226] amba f0c20000.funnel: Fixing up cyclic dependency with f0d70000.etm [ 0.313624] amba f0c20000.funnel: Fixing up cyclic dependency with f0d30000.etm [ 0.321110] amba f0c30000.etf: Fixing up cyclic dependency with f0c20000.funnel [ 1.470247] Serial: AMBA driver xilinx-vck190-20231:/home/petalinux# dmesg | grep -i coresight [ 1.865006] cs_system_cfg: CoreSight Configuration manager initialised [ 1.876858] coresight etm0: CPU0: etm v4.0 initialized [ 1.885666] coresight etm1: CPU1: etm v4.0 initialized [ 1.894435] coresight-cpu-debug f0d00000.debug1: Coresight debug-CPU0 initialized [ 1.902072] coresight-cpu-debug f0d40000.debug1: Coresight debug-CPU1 initialized
xilinx-vck190-20231:/home/petalinux# ls /sys/bus/coresight/devices/ etm0 etm1 funnel0 tmc_etf0
cd /sys/bus/coresight/devices/ echo 1 > tmc_etf0/enable_sink echo 1 > etm0/enable_source echo 0 > etm0/enable_source echo 0 > tmc_etf0/enable_sink cd /root/ dd if=/dev/tmc_etf0 of=cstrace_28Jun.bin
./ptm2human/ptm2human -e -i cstrace.bin -d
Please note that ptm2human is for PTM trace decoding and ETMv4 uses a different format and thus is not compatible.
I also tried OpenCSD integration with PERF.
Have you made sure the perf is "linked" to the opencsd ?
$ ldd $(which perf) | grep opencsd
With opencsd in, perf report -D should be able to decode the trace packets.
Suzuki
0x1e0@perf.data [0x90]: event: 69 . . ... raw event: size 144 bytes . 0000: 45 00 00 00 00 00 90 00 04 00 00 00 00 00 00 00 E............... . 0010: 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 H............... . 0020: 00 00 00 00 00 00 00 00 74 03 00 00 00 00 00 00 ........t....... . 0030: 49 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 I............... . 0040: 01 00 00 00 00 00 00 00 74 03 00 00 00 00 00 00 ........t....... . 0050: 4a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 J............... . 0060: 00 00 00 00 00 00 00 00 74 03 00 00 00 00 00 00 ........t....... . 0070: 4b 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 K............... . 0080: 01 00 00 00 00 00 00 00 74 03 00 00 00 00 00 00 ........t....... 0 0 0x1e0 [0x90]: PERF_RECORD_ID_INDEX nr: 4 ... id: 72 idx: 0 cpu: 0 tid: 884 ... id: 73 idx: 1 cpu: 1 tid: 884 ... id: 74 idx: 0 cpu: 0 tid: 884 ... id: 75 idx: 1 cpu: 1 tid: 884 0x270@perf.data [0xc8]: event: 70 . . ... raw event: size 200 bytes . 0000: 46 00 00 00 00 00 c8 00 03 00 00 00 00 00 00 00 F............... . 0010: 01 00 00 00 00 00 00 00 02 00 00 00 08 00 00 00 ................ . 0020: 00 00 00 00 00 00 00 00 40 40 40 40 40 40 40 40 ........@@@@@@@@ . 0030: 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 ................ . 0040: 40 08 00 00 00 00 00 00 10 00 00 00 00 00 00 00 @............... . 0050: a1 0e 00 28 00 00 00 00 01 f4 00 41 00 00 00 00 ...(.......A.... . 0060: 88 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ . 0070: cc 00 00 00 00 00 00 00 40 40 40 40 40 40 40 40 ........@@@@@@@@ . 0080: 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 ................ . 0090: 40 08 00 00 00 00 00 00 12 00 00 00 00 00 00 00 @............... . 00a0: a1 0e 00 28 00 00 00 00 01 f4 00 41 00 00 00 00 ...(.......A.... . 00b0: 88 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ . 00c0: cc 00 00 00 00 00 00 00 ........ 0 0 0x270 [0xc8]: PERF_RECORD_AUXTRACE_INFO type: 3
- log 58/58 100%
Thanks, Radhey