Re: [PATCH 2/2] perf callchain: Use global caching provided by libunwind

From: Namhyung Kim
Date: Tue Sep 23 2014 - 21:04:52 EST


On Tue, 23 Sep 2014 21:53:43 +0900, Namhyung Kim wrote:
> On Tue, Sep 23, 2014 at 9:28 PM, Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
>> On Tue, Sep 23, 2014 at 03:30:28PM +0900, Namhyung Kim wrote:
>>> The libunwind provides two caching policy which are global and
>>> per-thread. As perf unwinds callchains in a single thread, it'd
>>> sufficient to use global caching.
>>>
>>> This speeds up my perf report from 14s to 7s on a ~260MB data file.
>>> Although the output contains a slight difference (~0.01% in terms of
>>> number of lines printed) on callchains which were not resolved.
>>
>> hum, the speedup is nice, but what was the diff output.. any example?
>> The new version does not print some lines or different ones?
>
> I don't have the result now - will post the diff when I go to the
> office tomorrow. But IIRC new version only adds new lines..

Okay, this is the result.. But it doesn't always make a difference. I
can see it produces exactly same output for other (even bigger) data files.


$ diff -U0 callchain-result.{old,new}
--- callchain-result.old 2014-09-23 14:52:29.630711402 +0900
+++ callchain-result.new 2014-09-23 14:52:52.709505500 +0900
@@ -5322,0 +5323,9 @@
+ | | |
+ | | --0.00%-- 0x406520
+ | | 0x4064f0
+ | | |
+ | | |--0.00%-- 0x1ad52a0
+ | | |
+ | | |--0.00%-- 0x1a0f2e0
+ | | |
+ | | --0.00%-- 0x1a9e0c0
@@ -108899,0 +108909,3 @@
+ | | 0x406520
+ | | 0x4064f0
+ | | 0x1a9e0c0
@@ -180410,0 +180423,9 @@
+ | |
+ | --0.00%-- 0x406520
+ | 0x4064f0
+ | |
+ | |--0.00%-- 0x1ad52a0
+ | |
+ | |--0.00%-- 0x1a0f2e0
+ | |
+ | --0.00%-- 0x1a9e0c0

$ wc -l callchain-result.{old,new}
191412 callchain-result.old
191433 callchain-result.new
382845 total


Thanks,
Namhyung
--
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/