From: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
acme@kernel.org
Cc: peterz@infradead.org, mingo@redhat.com,
alexander.shishkin@linux.intel.com, treeze.taeung@gmail.com,
naveen.n.rao@linux.vnet.ibm.com, markus@trippelsdorf.de,
chris.ryder@arm.com, pawel.moll@arm.com, mhiramat@kernel.org,
rmk+kernel@arm.linux.org.uk, jolsa@kernel.org,
mpe@ellerman.id.au, hemant@linux.vnet.ibm.com,
namhyung@kernel.org,
Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
Subject: [PATCH v5 0/7] perf: Cross arch annotate + few miscellaneous fixes
Date: Fri, 19 Aug 2016 10:58:59 +0530 [thread overview]
Message-ID: <1471584546-11080-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com> (raw)
Currently Perf annotate support code navigation (branches and calls)
only when run on the same architecture where perf.data was recorded.
But, for example, record on powerpc server and annotate on client's
x86 desktop is not supported.
This patchset enables cross arch annotate. Currently I've used x86
and arm instructions which are already available and added support
for powerpc.
Additionally this patch series also contains few other related fixes.
Patches are prepared 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 v5:
- Replaced symbol__annotate with symbol__disassemble.
- Removed hacks for jump and call instructions like bctr and bctrl
respectively from generic patch that enables support for powerpc
and made separate patch for that.
- v4 was not annotating powerpc 'btar' instruction. Included that.
- Added few generic fixes.
v4 link:
https://lkml.org/lkml/2016/7/8/10
Naveen N. Rao (1):
perf annotate: Add support for powerpc
Ravi Bangoria (6):
perf: Define macro for normalized arch names
perf annotate: Add cross arch annotate support
perf annotate: Do not ignore call instruction with indirect target
perf annotate: Show raw form for jump instruction with indirect
target
perf annotate: Support jump instruction with target as second operand
perf annotate: Fix jump target outside of function address range
tools/perf/arch/common.c | 36 ++---
tools/perf/arch/common.h | 11 ++
tools/perf/builtin-top.c | 2 +-
tools/perf/ui/browsers/annotate.c | 8 +-
tools/perf/ui/gtk/annotate.c | 2 +-
tools/perf/util/annotate.c | 276 +++++++++++++++++++++++++++++--------
tools/perf/util/annotate.h | 10 +-
tools/perf/util/unwind-libunwind.c | 4 +-
8 files changed, 262 insertions(+), 87 deletions(-)
--
2.5.5
next reply other threads:[~2016-08-19 5:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-19 5:28 Ravi Bangoria [this message]
2016-08-19 5:29 ` [PATCH v5 1/7] perf: Define macro for normalized arch names Ravi Bangoria
2016-08-19 5:29 ` [PATCH v5 2/7] perf annotate: Add cross arch annotate support Ravi Bangoria
2016-08-19 7:50 ` Russell King - ARM Linux
2016-08-19 10:39 ` Ravi Bangoria
2016-08-19 10:48 ` Russell King - ARM Linux
2016-08-19 11:33 ` Ravi Bangoria
2016-08-19 5:29 ` [PATCH v5 3/7] perf annotate: Add support for powerpc Ravi Bangoria
2016-08-19 5:29 ` [PATCH v5 4/7] perf annotate: Do not ignore call instruction with indirect target Ravi Bangoria
2016-08-19 5:29 ` [PATCH v5 5/7] perf annotate: Show raw form for jump " Ravi Bangoria
2016-08-19 5:29 ` [PATCH v5 6/7] perf annotate: Support jump instruction with target as second operand Ravi Bangoria
2016-08-19 5:29 ` [PATCH v5 7/7] perf annotate: Fix jump target outside of function address range Ravi Bangoria
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1471584546-11080-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com \
--to=ravi.bangoria@linux.vnet.ibm.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=chris.ryder@arm.com \
--cc=hemant@linux.vnet.ibm.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=markus@trippelsdorf.de \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=namhyung@kernel.org \
--cc=naveen.n.rao@linux.vnet.ibm.com \
--cc=pawel.moll@arm.com \
--cc=peterz@infradead.org \
--cc=rmk+kernel@arm.linux.org.uk \
--cc=treeze.taeung@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.