linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] perf annotate: Display multiple events for --stdio
@ 2018-05-09 15:57 Jin Yao
  2018-05-09 16:42 ` Arnaldo Carvalho de Melo
  2018-05-15  6:40 ` [tip:perf/urgent] perf annotate: Display all available events on --stdio tip-bot for Jin Yao
  0 siblings, 2 replies; 6+ messages in thread
From: Jin Yao @ 2018-05-09 15:57 UTC (permalink / raw)
  To: acme, jolsa, peterz, mingo, alexander.shishkin
  Cc: Linux-kernel, ak, kan.liang, yao.jin, Jin Yao

When we perform following command lines:

perf record -e "{cycles,branches}" ./div
perf annotate main --stdio

Only shows one event "cycles" and the displaying format is not correct.

 Percent         |      Source code & Disassembly of div for cycles (44550 samples)
-----------------------------------------------------------------------------------
                 :
                 :
                 :
                 :            Disassembly of section .text:
                 :
                 :            00000000004004b0 <main>:
                 :            main():
                 :
                 :                    return i;
                 :            }
                 :
                 :            int main(void)
                 :            {
    0.00 :   4004b0:       push   %rbx
                 :                    int i;
                 :                    int flag;
                 :                    volatile double x = 1212121212, y = 121212;
                 :
                 :                    s_randseed = time(0);
    0.00 :   4004b1:       xor    %edi,%edi
                 :                    srand(s_randseed);
    0.00 :   4004b3:       mov    $0x77359400,%ebx
                 :
                 :                    return i;
                 :            }
                 :

The issue is the value of nr_percent is hardcoded to 1.
This patch fixes it.

With this patch, the output is:

 Percent         |      Source code & Disassembly of div for cycles (44550 samples)
-----------------------------------------------------------------------------------
                 :
                 :
                 :
                 :            Disassembly of section .text:
                 :
                 :            00000000004004b0 <main>:
                 :            main():
                 :
                 :                    return i;
                 :            }
                 :
                 :            int main(void)
                 :            {
    0.00    0.00 :   4004b0:       push   %rbx
                 :                    int i;
                 :                    int flag;
                 :                    volatile double x = 1212121212, y = 121212;
                 :
                 :                    s_randseed = time(0);
    0.00    0.00 :   4004b1:       xor    %edi,%edi
                 :                    srand(s_randseed);
    0.00    0.00 :   4004b3:       mov    $0x77359400,%ebx
                 :
                 :                    return i;
                 :            }

Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
---
 tools/perf/util/annotate.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 536ee14..5d74a30 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -1263,6 +1263,9 @@ annotation_line__print(struct annotation_line *al, struct symbol *sym, u64 start
 				max_percent = sample->percent;
 		}
 
+		if (al->samples_nr > nr_percent)
+			nr_percent = al->samples_nr;
+
 		if (max_percent < min_pcnt)
 			return -1;
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf annotate: Display multiple events for --stdio
  2018-05-09 15:57 [PATCH] perf annotate: Display multiple events for --stdio Jin Yao
@ 2018-05-09 16:42 ` Arnaldo Carvalho de Melo
  2018-05-09 17:24   ` Arnaldo Carvalho de Melo
  2018-05-10  0:29   ` Jin, Yao
  2018-05-15  6:40 ` [tip:perf/urgent] perf annotate: Display all available events on --stdio tip-bot for Jin Yao
  1 sibling, 2 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-05-09 16:42 UTC (permalink / raw)
  To: Jin Yao
  Cc: jolsa, peterz, mingo, alexander.shishkin, Linux-kernel, ak,
	kan.liang, yao.jin

Em Wed, May 09, 2018 at 11:57:15PM +0800, Jin Yao escreveu:
> When we perform following command lines:
> 
> perf record -e "{cycles,branches}" ./div
> perf annotate main --stdio
> 
> Only shows one event "cycles" and the displaying format is not correct.
> 
>  Percent         |      Source code & Disassembly of div for cycles (44550 samples)
> -----------------------------------------------------------------------------------

Please indent command output (two spaces before all lines) to avoid
scripts breaking due to mistaking lines starting with --- as the end of
the patch.

Applying.

- Arnaldo

>                  :
>                  :
>                  :
>                  :            Disassembly of section .text:
>                  :
>                  :            00000000004004b0 <main>:
>                  :            main():
>                  :
>                  :                    return i;
>                  :            }
>                  :
>                  :            int main(void)
>                  :            {
>     0.00 :   4004b0:       push   %rbx
>                  :                    int i;
>                  :                    int flag;
>                  :                    volatile double x = 1212121212, y = 121212;
>                  :
>                  :                    s_randseed = time(0);
>     0.00 :   4004b1:       xor    %edi,%edi
>                  :                    srand(s_randseed);
>     0.00 :   4004b3:       mov    $0x77359400,%ebx
>                  :
>                  :                    return i;
>                  :            }
>                  :
> 
> The issue is the value of nr_percent is hardcoded to 1.
> This patch fixes it.
> 
> With this patch, the output is:
> 
>  Percent         |      Source code & Disassembly of div for cycles (44550 samples)
> -----------------------------------------------------------------------------------
>                  :
>                  :
>                  :
>                  :            Disassembly of section .text:
>                  :
>                  :            00000000004004b0 <main>:
>                  :            main():
>                  :
>                  :                    return i;
>                  :            }
>                  :
>                  :            int main(void)
>                  :            {
>     0.00    0.00 :   4004b0:       push   %rbx
>                  :                    int i;
>                  :                    int flag;
>                  :                    volatile double x = 1212121212, y = 121212;
>                  :
>                  :                    s_randseed = time(0);
>     0.00    0.00 :   4004b1:       xor    %edi,%edi
>                  :                    srand(s_randseed);
>     0.00    0.00 :   4004b3:       mov    $0x77359400,%ebx
>                  :
>                  :                    return i;
>                  :            }
> 
> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
> ---
>  tools/perf/util/annotate.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
> index 536ee14..5d74a30 100644
> --- a/tools/perf/util/annotate.c
> +++ b/tools/perf/util/annotate.c
> @@ -1263,6 +1263,9 @@ annotation_line__print(struct annotation_line *al, struct symbol *sym, u64 start
>  				max_percent = sample->percent;
>  		}
>  
> +		if (al->samples_nr > nr_percent)
> +			nr_percent = al->samples_nr;
> +
>  		if (max_percent < min_pcnt)
>  			return -1;
>  
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf annotate: Display multiple events for --stdio
  2018-05-09 16:42 ` Arnaldo Carvalho de Melo
@ 2018-05-09 17:24   ` Arnaldo Carvalho de Melo
  2018-05-10  0:49     ` Jin, Yao
  2018-05-10  0:29   ` Jin, Yao
  1 sibling, 1 reply; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-05-09 17:24 UTC (permalink / raw)
  To: Jin Yao
  Cc: jolsa, peterz, mingo, alexander.shishkin, Linux-kernel, ak,
	kan.liang, yao.jin

Em Wed, May 09, 2018 at 01:42:51PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, May 09, 2018 at 11:57:15PM +0800, Jin Yao escreveu:
> > When we perform following command lines:
> > 
> > perf record -e "{cycles,branches}" ./div
> > perf annotate main --stdio
> > 
> > Only shows one event "cycles" and the displaying format is not correct.
> > 
> >  Percent         |      Source code & Disassembly of div for cycles (44550 samples)
> > -----------------------------------------------------------------------------------
> 
> Please indent command output (two spaces before all lines) to avoid
> scripts breaking due to mistaking lines starting with --- as the end of
> the patch.
> 
> Applying.

Also you forgot to add this:

Cc: Jiri Olsa <jolsa@kernel.org>
Fixes: f681d593d1ce ("perf annotate: Remove disasm__calc_percent() from disasm_line__print()")

Which I've just added, to help with stable@ processing.

- Arnaldo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf annotate: Display multiple events for --stdio
  2018-05-09 16:42 ` Arnaldo Carvalho de Melo
  2018-05-09 17:24   ` Arnaldo Carvalho de Melo
@ 2018-05-10  0:29   ` Jin, Yao
  1 sibling, 0 replies; 6+ messages in thread
From: Jin, Yao @ 2018-05-10  0:29 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: jolsa, peterz, mingo, alexander.shishkin, Linux-kernel, ak,
	kan.liang, yao.jin



On 5/10/2018 12:42 AM, Arnaldo Carvalho de Melo wrote:
> Em Wed, May 09, 2018 at 11:57:15PM +0800, Jin Yao escreveu:
>> When we perform following command lines:
>>
>> perf record -e "{cycles,branches}" ./div
>> perf annotate main --stdio
>>
>> Only shows one event "cycles" and the displaying format is not correct.
>>
>>   Percent         |      Source code & Disassembly of div for cycles (44550 samples)
>> -----------------------------------------------------------------------------------
> 
> Please indent command output (two spaces before all lines) to avoid
> scripts breaking due to mistaking lines starting with --- as the end of
> the patch.
> 
> Applying.
> 
> - Arnaldo
> 

Breaking the scripts? Oh, very sorry about that, I will be careful next 
time.

Thanks
Jin Yao

>>                   :
>>                   :
>>                   :
>>                   :            Disassembly of section .text:
>>                   :
>>                   :            00000000004004b0 <main>:
>>                   :            main():
>>                   :
>>                   :                    return i;
>>                   :            }
>>                   :
>>                   :            int main(void)
>>                   :            {
>>      0.00 :   4004b0:       push   %rbx
>>                   :                    int i;
>>                   :                    int flag;
>>                   :                    volatile double x = 1212121212, y = 121212;
>>                   :
>>                   :                    s_randseed = time(0);
>>      0.00 :   4004b1:       xor    %edi,%edi
>>                   :                    srand(s_randseed);
>>      0.00 :   4004b3:       mov    $0x77359400,%ebx
>>                   :
>>                   :                    return i;
>>                   :            }
>>                   :
>>
>> The issue is the value of nr_percent is hardcoded to 1.
>> This patch fixes it.
>>
>> With this patch, the output is:
>>
>>   Percent         |      Source code & Disassembly of div for cycles (44550 samples)
>> -----------------------------------------------------------------------------------
>>                   :
>>                   :
>>                   :
>>                   :            Disassembly of section .text:
>>                   :
>>                   :            00000000004004b0 <main>:
>>                   :            main():
>>                   :
>>                   :                    return i;
>>                   :            }
>>                   :
>>                   :            int main(void)
>>                   :            {
>>      0.00    0.00 :   4004b0:       push   %rbx
>>                   :                    int i;
>>                   :                    int flag;
>>                   :                    volatile double x = 1212121212, y = 121212;
>>                   :
>>                   :                    s_randseed = time(0);
>>      0.00    0.00 :   4004b1:       xor    %edi,%edi
>>                   :                    srand(s_randseed);
>>      0.00    0.00 :   4004b3:       mov    $0x77359400,%ebx
>>                   :
>>                   :                    return i;
>>                   :            }
>>
>> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
>> ---
>>   tools/perf/util/annotate.c | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
>> index 536ee14..5d74a30 100644
>> --- a/tools/perf/util/annotate.c
>> +++ b/tools/perf/util/annotate.c
>> @@ -1263,6 +1263,9 @@ annotation_line__print(struct annotation_line *al, struct symbol *sym, u64 start
>>   				max_percent = sample->percent;
>>   		}
>>   
>> +		if (al->samples_nr > nr_percent)
>> +			nr_percent = al->samples_nr;
>> +
>>   		if (max_percent < min_pcnt)
>>   			return -1;
>>   
>> -- 
>> 2.7.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] perf annotate: Display multiple events for --stdio
  2018-05-09 17:24   ` Arnaldo Carvalho de Melo
@ 2018-05-10  0:49     ` Jin, Yao
  0 siblings, 0 replies; 6+ messages in thread
From: Jin, Yao @ 2018-05-10  0:49 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: jolsa, peterz, mingo, alexander.shishkin, Linux-kernel, ak,
	kan.liang, yao.jin



On 5/10/2018 1:24 AM, Arnaldo Carvalho de Melo wrote:
> Em Wed, May 09, 2018 at 01:42:51PM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Wed, May 09, 2018 at 11:57:15PM +0800, Jin Yao escreveu:
>>> When we perform following command lines:
>>>
>>> perf record -e "{cycles,branches}" ./div
>>> perf annotate main --stdio
>>>
>>> Only shows one event "cycles" and the displaying format is not correct.
>>>
>>>   Percent         |      Source code & Disassembly of div for cycles (44550 samples)
>>> -----------------------------------------------------------------------------------
>>
>> Please indent command output (two spaces before all lines) to avoid
>> scripts breaking due to mistaking lines starting with --- as the end of
>> the patch.
>>
>> Applying.
> 
> Also you forgot to add this:
> 
> Cc: Jiri Olsa <jolsa@kernel.org>
> Fixes: f681d593d1ce ("perf annotate: Remove disasm__calc_percent() from disasm_line__print()")
> 
> Which I've just added, to help with stable@ processing.
> 
> - Arnaldo
> 

Actually I notice this issue during fixing another issue. :)

Another issue is, without using group, the multiple events can't be 
supported well in perf annotate.

perf record -e cycles,branches ./div
perf annotate main --stdio

It should show both cycles and branches on the left side but actually it 
only show cycles.

I will post patches for fixing this (working on the patch now).

Thanks
Jin Yao

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [tip:perf/urgent] perf annotate: Display all available events on --stdio
  2018-05-09 15:57 [PATCH] perf annotate: Display multiple events for --stdio Jin Yao
  2018-05-09 16:42 ` Arnaldo Carvalho de Melo
@ 2018-05-15  6:40 ` tip-bot for Jin Yao
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot for Jin Yao @ 2018-05-15  6:40 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: yao.jin, ak, peterz, alexander.shishkin, hpa, kan.liang,
	linux-kernel, tglx, acme, mingo, jolsa

Commit-ID:  04d2600ab669b2d44dd7920cc8a1b95c8144084c
Gitweb:     https://git.kernel.org/tip/04d2600ab669b2d44dd7920cc8a1b95c8144084c
Author:     Jin Yao <yao.jin@linux.intel.com>
AuthorDate: Wed, 9 May 2018 23:57:15 +0800
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Thu, 10 May 2018 15:19:30 -0300

perf annotate: Display all available events on --stdio

When we perform the following command lines:

  $ perf record -e "{cycles,branches}" ./div
  $ perf annotate main --stdio

The output shows only the first event, "cycles" and the displaying
format is not correct.

   Percent         |      Source code & Disassembly of div for cycles (44550 samples)
  -----------------------------------------------------------------------------------
                   :
                   :
                   :
                   :            Disassembly of section .text:
                   :
                   :            00000000004004b0 <main>:
                   :            main():
                   :
                   :                    return i;
                   :            }
                   :
                   :            int main(void)
                   :            {
      0.00 :   4004b0:       push   %rbx
                   :                    int i;
                   :                    int flag;
                   :                    volatile double x = 1212121212, y = 121212;
                   :
                   :                    s_randseed = time(0);
      0.00 :   4004b1:       xor    %edi,%edi
                   :                    srand(s_randseed);
      0.00 :   4004b3:       mov    $0x77359400,%ebx
                   :
                   :                    return i;
                   :            }

The issue is that the value of the 'nr_percent' variable is hardcoded to
1.  This patch fixes it.

With this patch, the output is:

   Percent         |      Source code & Disassembly of div for cycles (44550 samples)
  -----------------------------------------------------------------------------------
                   :
                   :
                   :
                   :            Disassembly of section .text:
                   :
                   :            00000000004004b0 <main>:
                   :            main():
                   :
                   :                    return i;
                   :            }
                   :
                   :            int main(void)
                   :            {
      0.00    0.00 :   4004b0:       push   %rbx
                   :                    int i;
                   :                    int flag;
                   :                    volatile double x = 1212121212, y = 121212;
                   :
                   :                    s_randseed = time(0);
      0.00    0.00 :   4004b1:       xor    %edi,%edi
                   :                    srand(s_randseed);
      0.00    0.00 :   4004b3:       mov    $0x77359400,%ebx
                   :
                   :                    return i;
                   :            }

Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Fixes: f681d593d1ce ("perf annotate: Remove disasm__calc_percent() from disasm_line__print()")
Link: http://lkml.kernel.org/r/1525881435-4092-1-git-send-email-yao.jin@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/annotate.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 536ee148bff8..5d74a30fe00f 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -1263,6 +1263,9 @@ annotation_line__print(struct annotation_line *al, struct symbol *sym, u64 start
 				max_percent = sample->percent;
 		}
 
+		if (al->samples_nr > nr_percent)
+			nr_percent = al->samples_nr;
+
 		if (max_percent < min_pcnt)
 			return -1;
 

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-05-15  6:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-09 15:57 [PATCH] perf annotate: Display multiple events for --stdio Jin Yao
2018-05-09 16:42 ` Arnaldo Carvalho de Melo
2018-05-09 17:24   ` Arnaldo Carvalho de Melo
2018-05-10  0:49     ` Jin, Yao
2018-05-10  0:29   ` Jin, Yao
2018-05-15  6:40 ` [tip:perf/urgent] perf annotate: Display all available events on --stdio tip-bot for Jin Yao

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).