perf script: fix regression in dso name
PATCH 1/1 perf script: fix regression in dso name
$ perf script -i /tmp/perf.data
...
gcc 13623 544315.062858: context-switches:
ffffffff815f65c9 __schedule ([kernel.kallsyms])
ffffffff81087cea __cond_resched ([kernel.kallsyms])
ffffffff815f6b92 _cond_resched ([kernel.kallsyms])
ffffffff815fb87a do_page_fault ([kernel.kallsyms])
ffffffff815f8465 page_fault ([kernel.kallsyms])
2b7a71ea0303 _dl_lookup_symbol_x ([kernel.kallsyms])
2b7a71ea1eb5 _dl_relocate_object ([kernel.kallsyms])
2b7a71e99b2e dl_main ([kernel.kallsyms])
2b7a71eab7f4 _dl_sysdep_start ([kernel.kallsyms])All DSO's in a callchain are printed as [kernel.kallsyms].
git bisect chased it to:
547a92e0aedb88129e7fbd804697a11949de2e5a is the first bad commit commit 547a92e0aedb88129e7fbd804697a11949de2e5a
Author: Akihiro Nagai <[email protected]> Date: Mon Jan 30 13:42:57 2012 +0900
perf script: Unify the expressions indicating "unknown"
The perf script command uses various expressions to indicate "unknown".
It is unfriendly for user scripts to parse it. So, this patch unifies the expressions to "[unknown]".
Looks like a copy-paste in that the other references use al.map but this one should be node->map.
With this patch you get:
$ perf script -i /tmp/perf.data
...
gcc 13623 544315.062858: context-switches:
ffffffff815f65c9 __schedule ([kernel.kallsyms])
ffffffff81087cea __cond_resched ([kernel.kallsyms])
ffffffff815f6b92 _cond_resched ([kernel.kallsyms])
ffffffff815fb87a do_page_fault ([kernel.kallsyms])
ffffffff815f8465 page_fault ([kernel.kallsyms])
2b7a71ea0303 _dl_lookup_symbol_x (/lib64/ld-2.14.90.so)
2b7a71ea1eb5 _dl_relocate_object (/lib64/ld-2.14.90.so)
2b7a71e99b2e dl_main (/lib64/ld-2.14.90.so)
2b7a71eab7f4 _dl_sysdep_start (/lib64/ld-2.14.90.so)--- tools/perf/util/session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/util/session.c +1 -1
@@ -1460,7 +1460,7 @@ void perf_event__print_ip(union perf_event *event, struct perf_sample *sample, }if (print_dso) {printf (" (" ); -map__fprintf_dsoname (al.map, stdout); +map__fprintf_dsoname (node->map, stdout);printf (")" ); }printf ("\n" );
Signature · 1 line
1.7.10.1
Em Tue, May 29, 2012 at 10:58:26PM -0600, David Ahern escreveu:
Quoted 13 lines
$ perf script -i /tmp/perf.data
...
gcc 13623 544315.062858: context-switches:
ffffffff815f65c9 __schedule ([kernel.kallsyms])
ffffffff81087cea __cond_resched ([kernel.kallsyms])
ffffffff815f6b92 _cond_resched ([kernel.kallsyms])
ffffffff815fb87a do_page_fault ([kernel.kallsyms])
ffffffff815f8465 page_fault ([kernel.kallsyms])
2b7a71ea0303 _dl_lookup_symbol_x ([kernel.kallsyms])
2b7a71ea1eb5 _dl_relocate_object ([kernel.kallsyms])
2b7a71e99b2e dl_main ([kernel.kallsyms])
2b7a71eab7f4 _dl_sysdep_start ([kernel.kallsyms])Quoted 1 line
All DSO's in a callchain are printed as [kernel.kallsyms].
Thanks, reproduced, tested and pushed to perf/urgent.
Unfortunately saw this after the last pull req, will include it in the next if Ingo pulls from the signed tag instead of perf/urgent.
- Arnaldo
Quoted 7 lines · Arnaldo Carvalho de Melo
Thanks, reproduced, tested and pushed to perf/urgent.
Unfortunately saw this after the last pull req, will include it in the next if Ingo pulls from the signed tag instead of perf/urgent.
- Arnaldo
broken in v3.3 too.
David
[tip:perf/urgent] perf script: Fix regression in callchain dso name
In reply to David AhernCommit-ID: 52deff71bc2b2c24587ab71f588ff5e4c9279349 Gitweb: http://git.kernel.org/tip/52deff71bc2b2c24587ab71f588ff5e4c9279349 Author: David Ahern <[email protected]> AuthorDate: Tue, 29 May 2012 22:58:26 -0600 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Wed, 30 May 2012 14:24:38 -0300
perf script: Fix regression in callchain dso name
$ perf script -i /tmp/perf.data
...
gcc 13623 544315.062858: context-switches:
ffffffff815f65c9 __schedule ([kernel.kallsyms])
ffffffff81087cea __cond_resched ([kernel.kallsyms])
ffffffff815f6b92 _cond_resched ([kernel.kallsyms])
ffffffff815fb87a do_page_fault ([kernel.kallsyms])
ffffffff815f8465 page_fault ([kernel.kallsyms])
2b7a71ea0303 _dl_lookup_symbol_x ([kernel.kallsyms])
2b7a71ea1eb5 _dl_relocate_object ([kernel.kallsyms])
2b7a71e99b2e dl_main ([kernel.kallsyms])
2b7a71eab7f4 _dl_sysdep_start ([kernel.kallsyms])All DSO's in a callchain are printed as [kernel.kallsyms].
git bisect chased it to:
547a92e0aedb88129e7fbd804697a11949de2e5a is the first bad commit commit 547a92e0aedb88129e7fbd804697a11949de2e5a
Author: Akihiro Nagai <[email protected]> Date: Mon Jan 30 13:42:57 2012 +0900
perf script: Unify the expressions indicating "unknown"
The perf script command uses various expressions to indicate "unknown".
It is unfriendly for user scripts to parse it. So, this patch unifies the expressions to "[unknown]".
Looks like a copy-paste in that the other references use al.map but this one should be node->map.
With this patch you get:
$ perf script -i /tmp/perf.data
...
gcc 13623 544315.062858: context-switches:
ffffffff815f65c9 __schedule ([kernel.kallsyms])
ffffffff81087cea __cond_resched ([kernel.kallsyms])
ffffffff815f6b92 _cond_resched ([kernel.kallsyms])
ffffffff815fb87a do_page_fault ([kernel.kallsyms])
ffffffff815f8465 page_fault ([kernel.kallsyms])
2b7a71ea0303 _dl_lookup_symbol_x (/lib64/ld-2.14.90.so)
2b7a71ea1eb5 _dl_relocate_object (/lib64/ld-2.14.90.so)
2b7a71e99b2e dl_main (/lib64/ld-2.14.90.so)
2b7a71eab7f4 _dl_sysdep_start (/lib64/ld-2.14.90.so)--- tools/perf/util/session.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
tools/perf/util/session.c +1 -1
@@ -1460,7 +1460,7 @@ void perf_event__print_ip(union perf_event *event, struct perf_sample *sample, }if (print_dso) {printf (" (" ); -map__fprintf_dsoname (al.map, stdout); +map__fprintf_dsoname (node->map, stdout);printf (")" ); }printf ("\n" );