On 2019/10/17 9:51, Tan Xiaojun wrote:
> 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

Sorry, it should add "--all-user" here, and finally there will still be some 
"pid:0" events in spe_dump.out. 
(And if kernel event is included, then "pid:0" is not a problem)

This causes the pc address of some spe sampled data to be untranslated because 
the wrong pid/tid is obtained from here.

Thanks.
Xiaojun.

> [ 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.
> 
> 
> .
> 


Reply via email to