[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c3c902e7-95bc-16d4-366f-12eb034c5c8d@gmail.com>
Date: Tue, 25 Jul 2017 06:28:42 +0900
From: Taeung Song <treeze.taeung@...il.com>
To: Arnaldo Carvalho de Melo <acme@...nel.org>
Cc: Arnaldo Carvalho de Melo <arnaldo.melo@...il.com>,
linux-kernel@...r.kernel.org, Namhyung Kim <namhyung@...nel.org>,
Milian Wolff <milian.wolff@...b.com>,
Jiri Olsa <jolsa@...hat.com>
Subject: Re: [PATCH v3 3/9] perf annotate: Fix wrong --show-total-period
option showing number of samples
On 07/25/2017 02:37 AM, Arnaldo Carvalho de Melo wrote:
> Em Mon, Jul 24, 2017 at 10:51:58AM +0900, Taeung Song escreveu:
>> Hi Arnaldo,
>>
>> Sorry, I'm too late.
>>
>> On 07/21/2017 08:24 PM, Arnaldo Carvalho de Melo wrote:
>>> Em Fri, Jul 21, 2017 at 06:41:29PM +0900, Taeung Song escreveu:
>>>> On 07/21/2017 04:19 AM, Arnaldo Carvalho de Melo wrote:
>>>>> Em Thu, Jul 20, 2017 at 06:36:55AM +0900, Taeung Song escreveu:
>>>>>> Currently the --show-total-period option of perf-annotate
>>>>>> is different from perf-report's.
>>>
>>>>>> For example, perf-report ordinarily shows period and number of samples.
>>>
>>>>>> # Overhead Samples Period Command Shared Object Symbol
>>>>>> 9.83% 102 84813704 test test [.] knapsack
>>>
>>>>> But this is not what this patch does, it is still doing too many things,
>>>>> it should first add sample to those function signatures, leaving the
>>>>> "meat" to a followup patch, where we will not be distracted with
>>>>> infrastructure needed to do what you describe in the changelog.
>>>
>>>>> I'm doing it here this time, please look at the result, later.
>>>> ok, I'm waiting for it.
>>>> And if you give me some sketchy code, that's fine.
>>>> If you do, I'll remake this patch based on the result. :)
>>>
>>> Take a look at the acme/tmp_perf/core, that is where I got yesterday.
>>>
>>> - Arnaldo
>>>
>>
>> I fetched all branch of your repository, but it don't seem to be pushed.
>>
>> $ git remote get-url acme
>> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git
>>
>> $ git branch -a | grep acme | grep tmp | grep core
>> remotes/acme/tmp.perf/core
>> remotes/acme/tmp_perf.core
>>
>> $ git show tmp.perf/core | head -3
>> commit 4827c52cd001e208704ab733a389c96ae2e70e5b
>> Author: Andi Kleen <ak@...ux.intel.com>
>> Date: Fri Jul 21 12:25:57 2017 -0700
>
> The one above, look further down, from 896bccd3cb8d to 0321d0281cbb,
> there are some more missing, but the ones below should be ready for
> sending to Ingo, which I plan to do today.
I didn't see them..
Thank you for adjusted patchset.
I checked them a while ago.
Would you add Reported-by: Namhyung Kim
to the commit 0321d0281cbbb404ea73f9e1869ec8db42e8ddfd ?
And we can handle other patches later,
but how about additionally fixing the header
on the annotate stdio browser ?
(If you don't want to handle additional patches anymore today,
I'll send them with next patchset.)
"Percent" -> "Event Count"
Because I think it would be better to show the proper first column.
Moreover there is the below case that is not aligned due to big period
values.
perf annotate --stdio -i milian.data --show-total-period
Percent | Source code & Disassembly of test for cycles:ppp (1442
samples)
-------------------------------------------------------------------------------
:
:
:
: Disassembly of section .text:
...
0 : 40089d: pxor %xmm1,%xmm1
27288350 : 4008a1: cvtsi2sd %rsi,%xmm1
0 : 4008a6: pxor %xmm5,%xmm5
So, I made a patch like below:
commit 6b96b9947e83474bd6e6fd09f93c390536bb435b
Author: Taeung Song <treeze.taeung@...il.com>
Date: Tue Jul 25 06:17:59 2017 +0900
perf annotate: Show the proper header when using --show-total-period
Currently a first column is only "Percent",
so fix it to show correct column name based on given options.
(e.g. if using --show-total-period, show "Event count" as a first
column)
Reported-by: Milian Wolff <milian.wolff@...b.com>
Cc: Namhyung Kim <namhyung@...nel.org>
Cc: Jiri Olsa <jolsa@...hat.com>
Signed-off-by: Taeung Song <treeze.taeung@...il.com>
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 004072f..0224595 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -1142,7 +1142,7 @@ static int disasm_line__print(struct disasm_line
*dl, struct symbol *sym, u64 st
color = get_percent_color(percent);
if (symbol_conf.show_total_period)
- color_fprintf(stdout, color, " %7" PRIu64,
+ color_fprintf(stdout, color, " %11" PRIu64,
sample.period);
else
color_fprintf(stdout, color, " %7.2f",
percent);
@@ -1173,6 +1173,10 @@ static int disasm_line__print(struct disasm_line
*dl, struct symbol *sym, u64 st
if (perf_evsel__is_group_event(evsel))
width *= evsel->nr_members;
+ if (symbol_conf.show_total_period)
+ width += perf_evsel__is_group_event(evsel) ?
+ 4 * evsel->nr_members : 4;
+
if (!*dl->line)
printf(" %*s:\n", width, " ");
else
@@ -1823,8 +1827,14 @@ int symbol__annotate_printf(struct symbol *sym,
struct map *map,
if (perf_evsel__is_group_event(evsel))
width *= evsel->nr_members;
+ if (symbol_conf.show_total_period)
+ width += perf_evsel__is_group_event(evsel) ?
+ 4 * evsel->nr_members : 4;
+
graph_dotted_len = printf(" %-*.*s| Source code &
Disassembly of %s for %s (%" PRIu64 " samples)\n",
- width, width, "Percent", d_filename, evsel_name,
h->nr_samples);
+ width, width,
+ symbol_conf.show_total_period ?
"Event count" : "Percent",
+ d_filename, evsel_name, h->nr_samples);
printf("%-*.*s----\n",
graph_dotted_len, graph_dotted_len, graph_dotted_line);
Thanks,
Taeung
>
> 4827c52cd001 perf jevents: Make build fail on JSON parse error
> 768750b250b4 perf top: Support lookup of symbols in other mount namespaces.
> bd09c1d5f473 perf stat: Use group read for event groups
> b9830d226aae perf evsel: Add read_counter() method
> e9c58e8b74b8 perf evsel: Add read_size method
> b1f952a065d6 perf evsel: Add verbose output for sys_perf_event_open fallback
> 1321cb6fb1ac perf jvmti: Fix linker error when libelf config is disabled
> 27cf8ae9ac36 perf annotate: Process tracing data in pipe mode
> 76dd07b982e0 perf tools: Add EXCLUDE_EXTLIBS and EXTRA_PERFLIBS to makefile
> f246e8b7f34e perf cgroup: Fix refcount usage
> 60cdc09e7d77 perf report: Fix kernel symbol adjustment for s390x
> 0321d0281cbb perf annotate stdio: Fix --show-total-period
> ecd5f9959d2c perf annotate: Do not overwrite sample->period
> 461c17f00f40 perf annotate: Store the sample period in each histogram bucket
> bab89f6aed7e perf hists: Pass perf_sample to __symbol__inc_addr_samples()
> 8158683da3d3 perf annotate: Rename 'sum' to 'nr_samples' in struct sym_hist
> 896bccd3cb8d perf annotate: Introduce struct sym_hist_entry
>
>
>> $ git show tmp_perf.core | head -3
>> commit 3331778eb08a50cec959da933c040bd7fbdde396
>> Author: Adrian Hunter <adrian.hunter@...el.com>
>> Date: Thu Jul 31 09:00:56 2014 +0300
>>
>>
>> Thanks,
>> Taeung
Powered by blists - more mailing lists