From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752035AbcF3MGI (ORCPT ); Thu, 30 Jun 2016 08:06:08 -0400 Received: from mail.kernel.org ([198.145.29.136]:44438 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751885AbcF3MGH (ORCPT ); Thu, 30 Jun 2016 08:06:07 -0400 Date: Thu, 30 Jun 2016 09:06:01 -0300 From: Arnaldo Carvalho de Melo To: He Kuang Cc: Wang Nan , Jiri Olsa , Peter Zijlstra , Linux Kernel Mailing List Subject: perf unwind: Odd message about x86 unwind Message-ID: <20160630120601.GC5324@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.6.1 (2016-04-27) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi He, While testing a patch by Peter Zijlstra to the --stdio annotation code I came accross these messages: [acme@jouet linux]$ perf annotate __vdso_gettimeofday 2>&1 | head -20 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 Percent | Source code & Disassembly of perf-vdso.so-E5tFUx for cycles:u ----------------------------------------------------------------------------- : : : : Disassembly of section .text: : : 0000000000000cd0 <__vdso_gettimeofday@@LINUX_2.6>: 0.00 : cd0: push %rbp 0.00 : cd1: mov %rsp,%rbp 0.00 : cd4: push %r15 0.00 : cd6: push %r14 0.00 : cd8: push %r13 0.00 : cda: push %r12 0.00 : cdc: push %rbx 0.00 : cdd: sub $0x10,%rsp [acme@jouet linux]$ And bisected it down to: commit 52ffe0ff02fc053a025c381d5808e9ecd3206dfe Author: He Kuang Date: Fri Jun 3 03:33:22 2016 +0000 perf callchain: Support x86 target platform Support x86(32-bit) cross platform callchain unwind. Signed-off-by: He Kuang Acked-by: Jiri Olsa -------------------------------------------------- The source code where this message is emitted is: struct unwind_libunwind_ops __weak *local_unwind_libunwind_ops; unwind__prepare_access() { struct unwind_libunwind_ops *ops = local_unwind_libunwind_ops; if (!strcmp(arch, "x86")) { if (dso_type != DSO__TYPE_64BIT) ops = x86_32_unwind_libunwind_ops; } if (!ops) { pr_err("unwind: target platform=%s is not supported\n", arch); return -1; } So, this should fallback to local_unwind_libunwind_ops, why is this not being set properly? Feature detection says: ... libunwind: [ on ] ... libdw-dwarf-unwind: [ on ] This is: [acme@jouet linux]$ uname -a Linux jouet 4.5.7-300.fc24.x86_64 #1 SMP Wed Jun 8 18:12:45 UTC 2016 x86_64 x86_64 x86_64 GNU/Linuxo Can you please check this? - Arnaldo