perf unwind: Do not fail due to missing unwind support
Jiri Olsa
reviewerPATCH 1/1 perf unwind: Do not fail due to missing unwind support
We currently fail the MMAP event processing if we don't have the MMAP event's specific arch unwind support compiled in.
That's wrong and can lead to unresolved mmaps in report output for 32bit binaries on 64bit server, like in this example on x86_64 server:
$ cat ex.c
int main(int argc, char **argv)
{
while (1) {}
}
$ gcc -o ex -m32 ex.c
$ perf record ./ex
^C[ perf record: Woken up 2 times to write data ]
[ perf record: Captured and wrote 0.371 MB perf.data (9322 samples) ]Before:
$ perf report --stdio
SNIP
# Overhead Command Shared Object Symbol
# ........ ....... ................ ......................
#
100.00% ex [unknown] [.] 0x00000000080483de
0.00% ex [unknown] [.] 0x00000000f76dba4f
0.00% ex [unknown] [.] 0x00000000f76e4c11
0.00% ex [unknown] [.] 0x00000000f76daa30After:
$ perf report --stdio
SNIP
# Overhead Command Shared Object Symbol
# ........ ....... ............. ...............
#
100.00% ex ex [.] main
0.00% ex ld-2.24.so [.] _dl_start
0.00% ex ld-2.24.so [.] do_lookup_x
0.00% ex ld-2.24.so [.] _startThe fix is not to fail, just warn if there's not unwind support compiled in.
--- tools/perf/util/unwind-libunwind.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/util/unwind-libunwind.c +1 -1
@@ -50,7 +50,7 @@ int unwind__prepare_access(struct thread *thread, struct map *map,if (!ops) {pr_err ("unwind: target platform=%s is not supported\n" , arch); -return -1 ; +return 0 ; } out_register:unwind__register_ops (thread, ops);
Signature · 1 line
2.9.4
tip-bot for Jiri Olsa
merge botperf unwind: Do not fail due to missing unwind support
Commit-ID: 1934adf78e33fa69570a763c7ac5353212416bb0 Gitweb: http://git.kernel.org/tip/1934adf78e33fa69570a763c7ac5353212416bb0 Author: Jiri Olsa <[email protected]> AuthorDate: Tue, 4 Jul 2017 15:11:31 +0200 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 4 Jul 2017 11:43:58 -0300
perf unwind: Do not fail due to missing unwind support
We currently fail the MMAP event processing if we don't have the MMAP event's specific arch unwind support compiled in.
That's wrong and can lead to unresolved mmaps in report output for 32bit binaries on 64bit server, like in this example on x86_64 server:
$ cat ex.c
int main(int argc, char **argv)
{
while (1) {}
}
$ gcc -o ex -m32 ex.c
$ perf record ./ex
^C[ perf record: Woken up 2 times to write data ]
[ perf record: Captured and wrote 0.371 MB perf.data (9322 samples) ]Before:
$ perf report --stdio
SNIP
# Overhead Command Shared Object Symbol
# ........ ....... ................ ......................
#
100.00% ex [unknown] [.] 0x00000000080483de
0.00% ex [unknown] [.] 0x00000000f76dba4f
0.00% ex [unknown] [.] 0x00000000f76e4c11
0.00% ex [unknown] [.] 0x00000000f76daa30After:
$ perf report --stdio
SNIP
# Overhead Command Shared Object Symbol
# ........ ....... ............. ...............
#
100.00% ex ex [.] main
0.00% ex ld-2.24.so [.] _dl_start
0.00% ex ld-2.24.so [.] do_lookup_x
0.00% ex ld-2.24.so [.] _startThe fix is not to fail, just warn if there's not unwind support compiled in.
--- tools/perf/util/unwind-libunwind.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/perf/util/unwind-libunwind.c +1 -1
@@ -50,7 +50,7 @@ int unwind__prepare_access(struct thread *thread, struct map *map,if (!ops) {pr_err ("unwind: target platform=%s is not supported\n" , arch); -return -1 ; +return 0 ; } out_register:unwind__register_ops (thread, ops);