From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751956AbdC0Dkm (ORCPT ); Sun, 26 Mar 2017 23:40:42 -0400 Received: from mail.kernel.org ([198.145.29.136]:59642 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751794AbdC0Dkg (ORCPT ); Sun, 26 Mar 2017 23:40:36 -0400 Date: Mon, 27 Mar 2017 12:39:54 +0900 From: Masami Hiramatsu To: Masami Hiramatsu Cc: Kim Phillips , Will Deacon , He Kuang , Wang Nan , Arnaldo Carvalho de Melo , Peter Zijlstra , Mark Rutland , Subject: [BUG?] perf: dwarf unwind doesn't work correctly with -static Message-Id: <20170327123954.44acd4f0f32ef106e27517a4@kernel.org> In-Reply-To: <20170324220030.9be942699250e87a5e22c53e@kernel.org> References: <20170223165018.5e6c469804e624f15ffbc4b2@kernel.org> <20170323222401.cc3745300cf817f908ac19fe@arm.com> <20170324220030.9be942699250e87a5e22c53e@kernel.org> X-Mailer: Sylpheed 3.5.0 (GTK+ 2.24.30; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, On Fri, 24 Mar 2017 22:00:30 +0900 Masami Hiramatsu wrote: > On Thu, 23 Mar 2017 22:24:01 -0500 > Kim Phillips wrote: > > > On Thu, 23 Feb 2017 16:50:18 +0900 > > Masami Hiramatsu wrote: > > > > [sorry for the delay, I just saw this] > > > > > perf record -g dwarf (and perf report) doesn't show correct callchain > > > on aarch64. Here is how to reproduce it. > > ... > > > # Samples: 6K of event 'cpu-clock:u' > > > # Event count (approx.): 1623750000 > > > # > > > # Children Self Command Shared Object Symbol > > > # ........ ........ ....... ............. .......................... > > > # > > > 17.21% 17.21% main main [.] func2 > > > | > > > ---func2 > > > > > > 17.09% 17.09% main main [.] func1 > > > | > > > ---func1 > > > > > > 16.67% 16.67% main main [.] main > > > | > > > ---main > > > ..... > > > > > > So, as you can see, the call graph reported each function has been > > > called from itself. If I report it with fp as below, perf reported > > > correct callgraph. > > ... > > > I guess there is a bug in libunwind on aarch64 or we missed to pass > > > the stack data to libunwind. (BTW, it works correctly on arm32) > > > > Trying to replicate this on a debian 9 ("stretch") arm64 box: > > I'm using debian 8 ("jessie"), but I can try debian 9 too. I've tried debian 9 and found this issue is another reason. > 2) Build attached program as below > # gcc -O0 -ggdb3 -funwind-tables -o main main.c Originally, I reported above, but that is not correct, when I cleaned up the command line, I missed important piece -- -static. I've tested several binaries with different gcc, and found that - Even with linaro-gcc 6.3.1, this issue happened. - But natively build binary with gcc-6.3 (stretch) I didn't see it. - Building binary with -static, it happened even with native binary 6.3. - And I saw this happened even on x86-64 with -static. So, I think the correct subject is "perf: dwarf unwind doesn't work correctly with -static" Thank you, -- Masami Hiramatsu