linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Taeung Song <treeze.taeung@gmail.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>,
	linux-kernel@vger.kernel.org, Namhyung Kim <namhyung@kernel.org>,
	Milian Wolff <milian.wolff@kdab.com>,
	Jiri Olsa <jolsa@redhat.com>
Subject: Re: [PATCH v3 3/9] perf annotate: Fix wrong --show-total-period option showing number of samples
Date: Tue, 25 Jul 2017 06:28:42 +0900	[thread overview]
Message-ID: <c3c902e7-95bc-16d4-366f-12eb034c5c8d@gmail.com> (raw)
In-Reply-To: <20170724173725.GT4134@kernel.org>



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@linux.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@gmail.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@kdab.com>
     Cc: Namhyung Kim <namhyung@kernel.org>
     Cc: Jiri Olsa <jolsa@redhat.com>
     Signed-off-by: Taeung Song <treeze.taeung@gmail.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@intel.com>
>> Date:   Thu Jul 31 09:00:56 2014 +0300
>>
>>
>> Thanks,
>> Taeung

  reply	other threads:[~2017-07-24 21:28 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-19 21:36 [PATCH v3 3/9] perf annotate: Fix wrong --show-total-period option showing number of samples Taeung Song
2017-07-20 19:19 ` Arnaldo Carvalho de Melo
2017-07-21  9:41   ` Taeung Song
2017-07-21 11:24     ` Arnaldo Carvalho de Melo
2017-07-24  1:51       ` Taeung Song
2017-07-24 17:37         ` Arnaldo Carvalho de Melo
2017-07-24 21:28           ` Taeung Song [this message]
2017-07-25 14:42             ` Arnaldo Carvalho de Melo
2017-07-25 15:53               ` Taeung Song
2017-07-25 16:17                 ` Arnaldo Carvalho de Melo
2017-07-26 11:57                   ` Taeung Song
2017-07-26 20:17                     ` Arnaldo Carvalho de Melo
2017-07-27 15:14                       ` Taeung Song
2017-07-26 17:27             ` [tip:perf/core] perf annotate stdio: Fix column header when using --show-total-period tip-bot for Taeung Song
2017-07-21 14:47 ` [PATCH v3 3/9] perf annotate: Fix wrong --show-total-period option showing number of samples Arnaldo Carvalho de Melo
2017-07-22 22:46   ` Namhyung Kim
2017-07-23 15:46     ` Andi Kleen
2017-07-24 17:34       ` Arnaldo Carvalho de Melo
2017-07-24 17:46         ` Andi Kleen
2017-07-24 18:07           ` Arnaldo Carvalho de Melo
2017-07-26 17:20 ` [tip:perf/core] perf hists: Pass perf_sample to __symbol__inc_addr_samples() tip-bot for Taeung Song
2017-07-26 17:20 ` [tip:perf/core] perf annotate: Store the sample period in each histogram bucket tip-bot for Taeung Song
2017-07-26 17:20 ` [tip:perf/core] perf annotate: Do not overwrite sample->period tip-bot for Taeung Song

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c3c902e7-95bc-16d4-366f-12eb034c5c8d@gmail.com \
    --to=treeze.taeung@gmail.com \
    --cc=acme@kernel.org \
    --cc=arnaldo.melo@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=milian.wolff@kdab.com \
    --cc=namhyung@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).