Re: [PATCH V8 08/25] perf tools: Add Intel BTS support

From: Adrian Hunter
Date: Thu Aug 20 2015 - 04:56:33 EST


On 18/08/15 19:10, Arnaldo Carvalho de Melo wrote:
> Em Tue, Aug 18, 2015 at 09:39:46AM +0300, Adrian Hunter escreveu:
>> On 17/08/15 22:58, Arnaldo Carvalho de Melo wrote:
>>> Em Mon, Aug 17, 2015 at 10:09:26PM +0300, Adrian Hunter escreveu:
>>>> On 17/08/2015 8:58 p.m., Arnaldo Carvalho de Melo wrote:
>>>>> Em Mon, Aug 17, 2015 at 08:43:09PM +0300, Adrian Hunter escreveu:
>>>>>> On 17/08/2015 6:52 p.m., Arnaldo Carvalho de Melo wrote:
>>>>>>> 1.92% usleep [unknown] [.] 0x00007fa0ff695086
>>>>>>> 1.60% usleep [unknown] [.] 0xffffffff811c91d0
>>>>>>> 1.48% usleep [unknown] [.] 0x00007fa0ffb3030d
>>>>>>> 1.24% usleep [unknown] [.] 0x00007fa0ff6950c7
>>>>>
>>>>>> It is very weird that it doesn't know the dso.
>>>>>
>>>>>> I presume there is nothing unusual about the environment e.g. in a chroot or anything
>>>>>
>>>>>> What if you try a different event e.g. perf record --per-thread -e cycles sleep 1
>>>>>
>>>>> [root@zoo ~]# perf record --per-thread -e cycles sleep 1
>>>>> [ perf record: Woken up 1 times to write data ]
>>>>> [ perf record: Captured and wrote 0.014 MB perf.data (9 samples) ]
>>>>> [root@zoo ~]# perf report | grep -v ^# | head -5
>>>>> 42.57% sleep libc-2.20.so [.] malloc_hook_ini
>>>>> 41.81% sleep [kernel.vmlinux] [k] filemap_fault
>>>>> 14.35% sleep [kernel.vmlinux] [k] flush_tlb_mm_range
>>>>> 1.18% sleep [kernel.vmlinux] [k] strlcpy
>>>>> 0.09% sleep [kernel.vmlinux] [k] native_write_msr_safe
>>>>> [root@zoo ~]#
>>>>>
>>>>> [root@zoo ~]# perf report --dsos libc-2.20.so | grep -v '^[#]'
>>>>> 42.57% sleep [.] malloc_hook_ini
>>>>>
>>>>> [root@zoo ~]#
>>>>>
>>>>> [root@zoo ~]# perf record --per-thread -e intel_bts// usleep 1
>>>>> [ perf record: Woken up 1 times to write data ]
>>>>> [ perf record: Captured and wrote 1.825 MB perf.data ]
>>>>> [root@zoo ~]# perf report | grep -v ^# | head -5
>>>>> Warning:
>>>>> 79074 instruction trace errors
>>>>> 2.80% usleep [unknown] [.] 0x00007f48888aa061
>>>>> [root@zoo ~]#
>>>>
>>>> Running out of ideas. Can you somehow share or send me the offending perf.data file?
>>>
>>> http://vger.kernel.org/~acme/perf/perf.data.intel_bts-4.2.0-rc5+.xz
>>
>> Says: You don't have permission to access
>> /~acme/perf/perf.data.intel_bts-4.2.0-rc5+.xz on this server.
>
> Ooops, fixed.
>
>>> It works if I use a tip/master kernel:
>>>
>>> [root@perf4 ~]# uname -r
>>> 4.2.0-rc7+
>>> [root@perf4 ~]# uname -r
>>> 4.2.0-rc7+
>>> [root@perf4 ~]# perf record --per-thread -e intel_bts// usleep 1
>>> [ perf record: Woken up 1 times to write data ]
>>> [ perf record: Captured and wrote 1.785 MB perf.data ]
>>> [root@perf4 ~]# dmesg | grep Performance
>>> [ 0.188477] Performance Events: PEBS fmt2+, 16-deep LBR, Broadwell
>>> events, full-width counters, Intel PMU driver.
>>> [root@perf4 ~]# perf report --stdio | grep -v ^# | head -10
>>>
>>>
>>>
>>>
>>> 10.81% usleep libc-2.17.so [.] _dl_addr
>>> 6.56% usleep [kernel.kallsyms] [.] unmap_single_vma
>>> 3.33% usleep ld-2.17.so [.] strcmp
>>> 2.53% usleep [kernel.kallsyms] [.] mem_cgroup_begin_page_stat
>>> 2.49% usleep ld-2.17.so [.] _dl_lookup_symbol_x
>>> 2.39% usleep ld-2.17.so [.] _dl_relocate_object
>>> [root@perf4 ~]#
>>>
>>> Probably some fix for the kernel driver is missing?
>>
>> Works for me though.
>
> Works for you if you test in lockstep the tooling with the kernel
> sources, right? It works for me as well, if I use the latest tip/master
> tooling _and_ kernel, my report was for using the 4.2.0-rc latest for
> the kernel and the tooling in tip/master.
>
> I think this would be just a matter of having a better message, or
> perhaps some fix that we need to send to the stable@xxxxxxxxxx guys, so
> that the new tooling works with a slightly older kernel.
>
> Anyway, consider looking at that perf.data file that I fixed the
> permissions on vger, and I will look at the fix you mentioned in another
> message.

With your perf.data file I was able to find the problem. I have sent patch
"perf tools: Fix Intel BTS/PT timestamp handling" to fix it.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/