Linux coresight arm64 : Incorrect data in cstrace.bin

Pandey, Radhey Shyam radhey.shyam.pandey at amd.com
Wed Jul 5 02:56:05 PDT 2023


> -----Original Message-----
> From: Suzuki K Poulose <suzuki.poulose at arm.com>
> Sent: Wednesday, July 5, 2023 1:57 PM
> To: Pandey, Radhey Shyam <radhey.shyam.pandey at amd.com>;
> mathieu.poirier at linaro.org; mike.leach at linaro.org; leo.yan at linaro.org;
> alexander.shishkin at linux.intel.com
> Cc: coresight at lists.linaro.org; linux-arm-kernel at lists.infradead.org
> Subject: Re: Linux coresight arm64 : Incorrect data in cstrace.bin
> 
> 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-ve
> > rsal-acap-trm.pdf
> >
> > 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 ?

Earlier I statically linked but after adding CORESIGHT=1.


linux-xlnx$ make ARCH=arm64 NO_LIBELF=1 NO_JVMTI=1 VF=1 CORESIGHT=1 -C tools/perf/
make: Entering directory 'linux-xlnx/tools/perf'
  BUILD:   Doing 'make -j24' parallel build

Makefile.config:520: *** Error: No libopencsd library found or the version is not up-to-date. 
Please install recent libopencsd to build with CORESIGHT=1.  Stop.


echo $CSINCLUDES
/scratch/development/coresight/my-opencsd/decoder/include
radheys at xhdradheys41:/scratch/development/linux-xlnx$ ls /scratch/development/coresight/my-opencsd/decoder/include
common  i_dec  interfaces  mem_acc  opencsd  opencsd.h  pkt_printers

echo $CSLIBS
/scratch/development/coresight/my-opencsd/decoder/lib/builddir
radheys at xhdradheys41:/scratch/development/linux-xlnx$ ls /scratch/development/coresight/my-opencsd/decoder/lib/builddir
libopencsd.a        libopencsd_c_api.so    libopencsd_c_api.so.1.4.0  libopencsd.so.1
libopencsd_c_api.a  libopencsd_c_api.so.1  libopencsd.so              libopencsd.so.1.4.0

Anything I am missing to fix this opencsd lib not found?


> 
> $ ldd $(which perf) | grep opencsd
> 
> With opencsd in, perf report -D should be able to decode the trace packets.
> 
> 
> Suzuki
> 
> >
> > 0x1e0 at 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 at 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



More information about the linux-arm-kernel mailing list