]> git.ipfire.org Git - thirdparty/linux.git/commit
perf disasm: Refactor arch__find and initialization of arch structs
authorIan Rogers <irogers@google.com>
Thu, 22 Jan 2026 21:35:15 +0000 (13:35 -0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 23 Jan 2026 19:58:39 +0000 (16:58 -0300)
commit0e26ba5a87744ee8957cc1f341e403c0fd758398
tree217d6756c09db21fc412f73c9d7b193bbb85e70b
parentc4e3a00356fffb20c03bd9609083afb1dc4a2edf
perf disasm: Refactor arch__find and initialization of arch structs

Switch arch__find to using an ELF machine number rather than a
string.

Rather than an array of fixed size arch structs turn the init functions
into new functions indexed by the ELF machine they correspond to.

This allows data to be stored with a struct arch with the container_of
trick, so the priv variable can be removed.

Switch to using the thread to find the arch rather than the evsel as the
evsel only has limited notions of the running thread upon which
disassembly is performed.

Factor out the e_machine and e_flags into their own struct to make them
easier to pass around.

Reviewed-by: James Clark <james.clark@linaro.org>
Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Aditya Bodkhe <aditya.b1@linux.ibm.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexandre Ghiti <alex@ghiti.fr>
Cc: Athira Rajeev <atrajeev@linux.ibm.com>
Cc: Bill Wendling <morbo@google.com>
Cc: Dr. David Alan Gilbert <linux@treblig.org>
Cc: Guo Ren <guoren@kernel.org>
Cc: Howard Chu <howardchu95@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Garry <john.g.garry@oracle.com>
Cc: Julia Lawall <Julia.Lawall@inria.fr>
Cc: Justin Stitt <justinstitt@google.com>
Cc: Krzysztof Ɓopatowski <krzysztof.m.lopatowski@gmail.com>
Cc: Leo Yan <leo.yan@linux.dev>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <nick.desaulniers+lkml@gmail.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Walmsley <pjw@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sergei Trofimovich <slyich@gmail.com>
Cc: Shimin Guo <shimin.guo@skydio.com>
Cc: Suchit Karunakaran <suchitkarunakaran@gmail.com>
Cc: Thomas Falcon <thomas.falcon@intel.com>
Cc: Tianyou Li <tianyou.li@intel.com>
Cc: Will Deacon <will@kernel.org>
Cc: Zecheng Li <zecheng@google.com>
[ Include elf.h for EM_CSKY and friends and also conditionally define EM_CSKY_ABIMASK for old distros ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
16 files changed:
tools/perf/ui/browsers/annotate.c
tools/perf/util/annotate-arch/annotate-arc.c
tools/perf/util/annotate-arch/annotate-arm.c
tools/perf/util/annotate-arch/annotate-arm64.c
tools/perf/util/annotate-arch/annotate-csky.c
tools/perf/util/annotate-arch/annotate-loongarch.c
tools/perf/util/annotate-arch/annotate-mips.c
tools/perf/util/annotate-arch/annotate-powerpc.c
tools/perf/util/annotate-arch/annotate-riscv64.c
tools/perf/util/annotate-arch/annotate-s390.c
tools/perf/util/annotate-arch/annotate-sparc.c
tools/perf/util/annotate-arch/annotate-x86.c
tools/perf/util/annotate.c
tools/perf/util/annotate.h
tools/perf/util/disasm.c
tools/perf/util/disasm.h