Re: [RFC PATCH 2/3] perf tools: Add support for "report" for some spe events

From: Tan Xiaojun
Date: Wed Oct 16 2019 - 21:51:28 EST


On 2019/10/16 18:12, James Clark wrote:
> Hi Xiaojun,
>
>>>
>>> What do you mean when the user specifies "event:pp", if the SPE is available, configure and record the spe data directly via the perf event open syscall?
>>> (perf.data itself is the same as using -e arm_spe_0//xxx?)
>>
>> I mean, for the perf record, if the user does not add ":pp" to these events, the original process is taken, and if ":pp" is added, the spe process is taken.
>>
>
> Yes we think this is the best way to do it considering that SPE has been implemented as a separate PMU and it will be very difficult to do it in the Kernel when the precise_ip attribute is set.
>
> I think doing everything in userspace is easiest. This will at least mean that users of Perf don't have to be aware of the details of SPE to get precise sample data.
>
> So if the user specifies "event:p" when SPE is available, the SPE PMU is automatically configured data is recorded. If the user also specifies -e arm_spe_0//xxx and wants to do some manual configuration, then that could override the automatic configuration.
>
>
> James
>
>
>

OK. I got it.

I found a bug in the test. If I specify cpu_list(use -a or -C) when logging spe data, some events with "pid:0 tid:0" is logged. This is obviously wrong.

I want to solve this problem, but I haven't found out what went wrong.

--------------------------------------------------------------
[root@server121 perf]# perf record -e arm_spe_0/branch_filter=1,ts_enable=1,pa_enable=1,load_filter=1,jitter=0,store_filter=1,min_latency=0/ -a
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 7.925 MB perf.data ]
[root@server121 perf]# perf report -D > spe_dump.out
[root@server121 perf]# vim spe_dump.out

--------------------------------------------------------------
...
0xd0330 [0x30]: event: 12
.
. ... raw event: size 48 bytes
. 0000: 0c 00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 ......0.........
. 0010: 00 00 00 00 00 00 00 00 f8 d9 fe bd f7 08 02 00 ................
. 0020: 00 00 00 00 00 00 00 00 4c bc 14 00 00 00 00 00 ........L.......

0 572810090961400 0xd0330 [0x30]: PERF_RECORD_ITRACE_START pid: 0 tid: 0

0xd0438 [0x30]: event: 12
.
. ... raw event: size 48 bytes
. 0000: 0c 00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 ......0.........
. 0010: 00 00 00 00 00 00 00 00 d8 ef fe bd f7 08 02 00 ................
. 0020: 01 00 00 00 00 00 00 00 4d bc 14 00 00 00 00 00 ........M.......

1 572810090967000 0xd0438 [0x30]: PERF_RECORD_ITRACE_START pid: 0 tid: 0
...
--------------------------------------------------------------

Thanks.
Xiaojun.