New attempt at adding an disassembler to perf
From: Andi Kleen
Date: Wed Jan 18 2017 - 20:43:17 EST
A native disassembler in perf is very useful, in particular with perf script to trace
instruction streams, but also for other analysis. Previously I attempted
to do this using the udis86 library, but that was rejected because:
- udis86 was not maintained anymore and lacking recent instructions
- udis86 is dynamically linked and gives a runtime dependency.
Doing this needs a full disassembler, not just a decoder, so the existing
instruction decoder cannot be used without major changes.
This patchkit addresses these issues. Intel recently released an open source version
of the XED disassembler library, which is used in many other Intel software.
It is very well maintained, uptodate, and supports static linking, so there is no
runtime dependency. This version adds XED support to perf, and uses it to implement
assembler output in perf script. It also fixes a range of issues in the previous
version, see the individual change logs.
Available in
git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-misc.git perf/xed-6
v1: First post of XED version
v2: Change probing to not be default and support XED_DIR. Other cleanups
based on review.
v3: Use FEATURE_FLAGS_BASIC for probing
-Andi