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

