Linux Perf Users
 help / color / mirror / Atom feed
* [PATCH 0/2] perf: Alpha annotation support
@ 2026-09-05 22:54 Matt Turner
  2026-09-05 22:54 ` [PATCH 1/2] perf thread: Fix live-session detection in thread__e_machine() Matt Turner
  2026-09-05 22:54 ` [PATCH 2/2] perf annotate: add Alpha instruction support Matt Turner
  0 siblings, 2 replies; 8+ messages in thread
From: Matt Turner @ 2026-09-05 22:54 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, James Clark
  Cc: linux-perf-users, linux-kernel, Matt Turner

Alpha has no arch support in perf annotate, so annotating an Alpha
perf.data resolves no call targets and draws no jump arrows.  Patch 2 adds
it.  Patch 1 is a prerequisite for reading such a perf.data anywhere other
than on Alpha itself: thread__e_machine() currently misdetects a
file-backed session as live and falls back to EM_HOST, which silently
annotates the Alpha disassembly with the x86 instruction table.

Alpha's calls need a little care.  Only bsr has a real PC-relative target.
jsr is register-indirect, and its trailing operand is a branch prediction
hint that objdump prints as an address, so it looks like a call target
without being one: in a vmlinux built from this tree, only 23093 of the
213750 jsr hints land on a symbol, while 157204 point into the middle of an
unrelated function.  Those are therefore left unresolved rather than
reported as calls to whatever the hint happens to name.

Tested on an EV7 Marvel, both natively and by annotating its perf.data on
an x86_64 host, over bsr to a local function, jsr through the PLT and
kernel-mode jsr.  The two hosts produce identical output.

Signed-off-by: Matt Turner <mattst88@gmail.com>
---
Matt Turner (2):
      perf thread: Fix live-session detection in thread__e_machine()
      perf annotate: add Alpha instruction support

 tools/perf/util/annotate-arch/Build            |   1 +
 tools/perf/util/annotate-arch/annotate-alpha.c | 185 +++++++++++++++++++++++++
 tools/perf/util/disasm.c                       |  15 +-
 tools/perf/util/disasm.h                       |   1 +
 tools/perf/util/machine.c                      |   1 +
 tools/perf/util/thread.c                       |   2 +-
 6 files changed, 202 insertions(+), 3 deletions(-)
---
base-commit: 9f0346dcbea363787186c94ef94dd01aaa215afa
change-id: 20260905-perf-alpha-annotate-b49a2b8b6d99

Best regards,
-- 
Matt Turner <mattst88@gmail.com>


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-09-08 21:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-05 22:54 [PATCH 0/2] perf: Alpha annotation support Matt Turner
2026-09-05 22:54 ` [PATCH 1/2] perf thread: Fix live-session detection in thread__e_machine() Matt Turner
2026-09-05 23:05   ` sashiko-bot
2026-09-08 17:34   ` Ian Rogers
2026-09-05 22:54 ` [PATCH 2/2] perf annotate: add Alpha instruction support Matt Turner
2026-09-05 22:59   ` sashiko-bot
2026-09-08 17:35   ` Ian Rogers
2026-09-08 21:11     ` Arnaldo Carvalho de Melo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox