Re: [PATCH] perf: fix getting source line failure in annotate
From: Jiri Olsa
Date: Thu Feb 21 2019 - 06:06:04 EST
On Thu, Feb 21, 2019 at 05:57:16PM +0800, Wei Li wrote:
SNIP
> liwei@euler:~/main_code/hulk_work/hulk/tools/perf$ sudo ./perf record ./common_while_1
> [ perf record: Woken up 2 times to write data ]
> [ perf record: Captured and wrote 0.488 MB perf.data (12500 samples) ]
> liwei@euler:~/main_code/hulk_work/hulk/tools/perf$ sudo ./perf annotate -l -s hotspot_1 --stdio
>
> Sorted summary for file /home/liwei/main_code/hulk_work/hulk/tools/perf/common_while_1
> ----------------------------------------------
>
> 33.34 common_while_1.c:5
> 33.34 common_while_1.c:6
> 33.32 common_while_1.c:7
> Percent | Source code & Disassembly of common_while_1 for cycles:ppp (12482 samples, percent: local period)
> -----------------------------------------------------------------------------------------------------------------
> :
> :
> :
> : Disassembly of section .text:
> :
> : 00000000000005fa <hotspot_1>:
> : hotspot_1():
> : void hotspot_1(void)
> : {
> 0.00 : 5fa: push %rbp
> 0.00 : 5fb: mov %rsp,%rbp
> : volatile int i;
> :
> : for (i = 0; i < 0x10000000; i++);
> 0.00 : 5fe: movl $0x0,-0x4(%rbp)
> 0.00 : 605: jmp 610 <hotspot_1+0x16>
> 0.00 : 607: mov -0x4(%rbp),%eax
> common_while_1.c:5 4.70 : 60a: add $0x1,%eax
> 4.89 : 60d: mov %eax,-0x4(%rbp)
> common_while_1.c:5 19.03 : 610: mov -0x4(%rbp),%eax
> common_while_1.c:5 4.72 : 613: cmp $0xfffffff,%eax
> 0.00 : 618: jle 607 <hotspot_1+0xd>
> : for (i = 0; i < 0x10000000; i++);
> 0.00 : 61a: movl $0x0,-0x4(%rbp)
> 0.00 : 621: jmp 62c <hotspot_1+0x32>
> 0.00 : 623: mov -0x4(%rbp),%eax
> common_while_1.c:6 4.54 : 626: add $0x1,%eax
> 4.73 : 629: mov %eax,-0x4(%rbp)
> common_while_1.c:6 19.54 : 62c: mov -0x4(%rbp),%eax
> common_while_1.c:6 4.54 : 62f: cmp $0xfffffff,%eax
> ...
>
> Fixes: 425859ff0de33 ("perf annotate: No need to calculate notes->start twice")
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
thanks,
jirka