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.