From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752264AbdFNNwy (ORCPT ); Wed, 14 Jun 2017 09:52:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:35316 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752226AbdFNNwx (ORCPT ); Wed, 14 Jun 2017 09:52:53 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2A251219A8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=acme@kernel.org Date: Wed, 14 Jun 2017 10:52:42 -0300 From: Arnaldo Carvalho de Melo To: Jiri Olsa Cc: Ingo Molnar , linux-kernel@vger.kernel.org, Arnaldo Carvalho de Melo , Adrian Hunter , Alexander Shishkin , David Ahern , Namhyung Kim , Peter Zijlstra , Wang Nan 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 Message-ID: <20170614135242.GD32020@kernel.org> References: <20170613232343.4365-1-acme@kernel.org> <20170613232343.4365-2-acme@kernel.org> <20170614054500.exocsybw2qkug5tn@gmail.com> <20170614132947.GC32020@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170614132947.GC32020@kernel.org> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.8.0 (2017-02-23) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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