Messages in this thread | | | Date | Wed, 14 Jun 2017 10:52:42 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | perf: unwind: target platform=x86 not supported was: Re: [PATCH 1/2] perf evsel: Fix probing of precise_ip level for default cycles event |
| |
Em Wed, Jun 14, 2017 at 10:29:47AM -0300, Arnaldo Carvalho de Melo escreveu: > Em Wed, Jun 14, 2017 at 07:45:01AM +0200, Ingo Molnar escreveu: > > triton:~/tip> perf report --stdio > > unwind: target platform=x86 is not supported > > unwind: target platform=x86 is not supported > > unwind: target platform=x86 is not supported > > unwind: target platform=x86 is not supported > > unwind: target platform=x86 is not supported > > unwind: target platform=x86 is not supported > > unwind: target platform=x86 is not supported > > unwind: target platform=x86 is not supported > > > # ======== > > # captured on: Wed Jun 14 07:34:42 2017 > > # hostname : triton > > # os release : 4.10.0-23-generic > > # perf version : 4.12.rc5.g9688eb > > # arch : x86_64 > > # nrcpus online : 12 > > # nrcpus avail : 12 > > # cpudesc : Intel(R) Core(TM) i7-4960X CPU @ 3.60GHz > > # cpuid : GenuineIntel,6,62,4 > > # total memory : 65917012 kB > > # cmdline : /home/mingo/bin/perf record /home/mingo/hackbench 10 > > > let me know if you need more info. > > > > Btw., note that there's also this warning: > > > > unwind: target platform=x86 is not supported > > > > (but that's unrelated to this commit.) > > Ok, what distro? Do you have libunwind-devel installed? I couldn't > reproduce this one here with/without it installed, to test I build it > with: > > make ARCH=x86_64 O=/tmp/build/perf -C tools/perf install-bin > > and without that ARCH= setting, then I record with: > > perf record --call-graph dwarf -a sleep 2 > > and try what you said emitted that warning: > > perf report --stdio
So, the "unwind: target platform=x86 is not supported" comes only from:
a tools/perf/util/unwind-libunwind.c
That is linked by:
$ grep libunwind-local tools/perf/util/Build libperf-$(CONFIG_LOCAL_LIBUNWIND) += unwind-libunwind-local.o $
And here CONFIG_LOCAL_LIBUNWIND is detected:
[acme@jouet linux]$ grep CONFIG_LOCAL_LIBUNWIND /tmp/build/perf/.config-detected CONFIG_LOCAL_LIBUNWIND=y [acme@jouet linux]$
And that message is there:
[acme@jouet linux]$ strings ~/bin/perf | grep "unwind: target platform=" unwind: target platform=%s is not supported [acme@jouet linux]$
So the only way for get to that point would be for local_unwind_libunwind_ops to be NULL, which it will be if its __weak definition seting it to zero isn't overriden by...
tools/perf/util/unwind-libunwind-local.c
#ifndef REMOTE_UNWIND_LIBUNWIND struct unwind_libunwind_ops * local_unwind_libunwind_ops = &_unwind_libunwind_ops; #endif
And what defines it is...
tools/perf/util/libunwind/x86_32.c:#define REMOTE_UNWIND_LIBUNWIND
(and a arm64 file, but lets leave that aside, seems unrelated to this case)
That will get built by...
tools/perf/util/Build:libperf-$(CONFIG_LIBUNWIND_X86) += libunwind/x86_32.o
[acme@jouet linux]$ grep CONFIG_LIBUNWIND_X86 /tmp/build/perf/.config-detected [acme@jouet linux]$
Ingo, are you doing something unusual as building a 32-bit perf to read a 62-bit perf.data file?
Jiri, can you help here? Do you need more info?
- Arnaldo
| |