From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752591AbcGHEki (ORCPT ); Fri, 8 Jul 2016 00:40:38 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:5035 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750858AbcGHEka (ORCPT ); Fri, 8 Jul 2016 00:40:30 -0400 X-IBM-Helo: d23dlp01.au.ibm.com X-IBM-MailFrom: ravi.bangoria@linux.vnet.ibm.com X-IBM-RcptTo: linux-kernel@vger.kernel.org From: Ravi Bangoria To: linux-kernel@vger.kernel.org, acme@kernel.org, linuxppc-dev@lists.ozlabs.org Cc: anton@ozlabs.org, mpe@ellerman.id.au, ananth@in.ibm.com, dja@axtens.net, naveen.n.rao@linux.vnet.ibm.com, ravi.bangoria@linux.vnet.ibm.com, David.Laight@ACULAB.COM, rmk+kernel@arm.linux.org.uk Subject: [PATCH v4 0/3] perf annotate: Enable cross arch annotate Date: Fri, 8 Jul 2016 10:10:10 +0530 X-Mailer: git-send-email 2.1.4 X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16070804-1617-0000-0000-00000137649A X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16070804-1618-0000-0000-0000463BAED5 Message-Id: <1467952813-5797-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-07-08_02:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1604210000 definitions=main-1607080044 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Perf can currently only support code navigation (branches and calls) in annotate when run on the same architecture where perf.data was recorded. But cross arch annotate is not supported. This patchset enables cross arch annotate. Currently I've used x86 and arm instructions which are already available and adding support for powerpc as well. Adding support for other arch will be easy. I've created this patch on top of acme/perf/core. And tested it with x86 and powerpc only. Note for arm: Few instructions were defined under #if __arm__ which I've used as a table for arm. But I'm not sure whether instruction defined outside of that also contains arm instructions. Apart from that, 'call__parse()' and 'move__parse()' contains #ifdef __arm__ directive. I've changed it to if (!strcmp(norm_arch, arm)). I don't have a arm machine to test these changes. Example: Record on powerpc: $ ./perf record -a Report -> Annotate on x86: $ ./perf report -i perf.data.powerpc --vmlinux vmlinux.powerpc Changes in v4: - powerpc: Added support for branch instructions that includes 'ctr' - __maybe_unused was misplaced at few location. Corrected it. - Moved position of v3 last patch that define macro for each arch name v3 link: https://lkml.org/lkml/2016/6/30/99 Naveen N. Rao (1): perf annotate: add powerpc support Ravi Bangoria (2): perf: Define macro for normalized arch names perf annotate: Enable cross arch annotate tools/perf/arch/common.c | 36 ++--- tools/perf/arch/common.h | 11 ++ tools/perf/builtin-top.c | 2 +- tools/perf/ui/browsers/annotate.c | 3 +- tools/perf/ui/gtk/annotate.c | 2 +- tools/perf/util/annotate.c | 273 ++++++++++++++++++++++++++++++------- tools/perf/util/annotate.h | 6 +- tools/perf/util/unwind-libunwind.c | 4 +- 8 files changed, 265 insertions(+), 72 deletions(-) -- 2.5.5