[PATCH v2 0/6] perf Cross platform KVM support
Arnaldo Carvalho de Melo
acme at kernel.org
Tue Feb 3 06:42:41 PST 2026
On Sat, Jan 31, 2026 at 12:02:18PM -0800, Ian Rogers wrote:
> The existing perf kvm code is using the arch directory, which means a
> data file can only be processed on the same machine type that it was
> recorded. Switch to using the ELF machine of the session at runtime to
> set up the KVM support, making it cross-architectural. So that the ELF
> machine number is available early in initialization add it to the perf
> data file header.
>
> v2: Wire up the perf data header to have the e_machine and allow early
> initialization of the KVM operations based upon it.
> v1: https://lore.kernel.org/lkml/20260128074106.788156-1-irogers@google.com/
Thanks, applied to perf-tools-next,
- Arnaldo
> Ian Rogers (6):
> perf test kvm: Add stat live testing
> perf kvm stat: Remove use of the arch directory
> perf kvm: Wire up e_machine
> perf session: Add e_flags to the e_machine helper
> perf header: Add e_machine/e_flags to the header
> perf thread: Don't require machine to compute the e_machine
>
> tools/perf/Makefile.config | 4 -
> tools/perf/arch/arm64/Makefile | 1 -
> tools/perf/arch/arm64/util/Build | 1 -
> tools/perf/arch/loongarch/Makefile | 1 -
> tools/perf/arch/loongarch/util/Build | 1 -
> tools/perf/arch/powerpc/Makefile | 1 -
> tools/perf/arch/powerpc/util/Build | 1 -
> tools/perf/arch/riscv/Makefile | 1 -
> tools/perf/arch/riscv/util/Build | 2 -
> tools/perf/arch/s390/Makefile | 1 -
> tools/perf/arch/s390/util/Build | 1 -
> tools/perf/arch/x86/Makefile | 1 -
> tools/perf/arch/x86/util/Build | 1 -
> tools/perf/builtin-kvm.c | 73 +++---
> tools/perf/builtin-report.c | 4 +-
> tools/perf/builtin-script.c | 6 +-
> tools/perf/tests/shell/kvm.sh | 30 ++-
> tools/perf/util/Build | 3 +-
> tools/perf/util/env.h | 3 +
> tools/perf/util/evsel.c | 6 +-
> tools/perf/util/evsel.h | 1 +
> tools/perf/util/header.c | 33 +++
> tools/perf/util/header.h | 1 +
> tools/perf/util/kvm-stat-arch/Build | 6 +
> .../kvm-stat-arch}/arm64_exception_types.h | 0
> .../kvm-stat-arch}/book3s_hcalls.h | 0
> .../kvm-stat-arch}/book3s_hv_exits.h | 0
> .../kvm-stat-arch/kvm-stat-arm64.c} | 43 ++--
> .../kvm-stat-arch/kvm-stat-loongarch.c} | 48 ++--
> .../kvm-stat-arch/kvm-stat-powerpc.c} | 61 ++---
> .../kvm-stat-arch/kvm-stat-riscv.c} | 42 ++--
> .../kvm-stat-arch/kvm-stat-s390.c} | 38 ++--
> .../kvm-stat-arch/kvm-stat-x86.c} | 44 ++--
> .../kvm-stat-arch}/riscv_trap_types.h | 2 +-
> tools/perf/util/kvm-stat.c | 215 +++++++++++++++++-
> tools/perf/util/kvm-stat.h | 70 ++++--
> .../scripting-engines/trace-event-python.c | 8 +-
> tools/perf/util/session.c | 62 ++++-
> tools/perf/util/session.h | 2 +-
> tools/perf/util/thread.c | 5 +
> 40 files changed, 606 insertions(+), 217 deletions(-)
> create mode 100644 tools/perf/util/kvm-stat-arch/Build
> rename tools/perf/{arch/arm64/util => util/kvm-stat-arch}/arm64_exception_types.h (100%)
> rename tools/perf/{arch/powerpc/util => util/kvm-stat-arch}/book3s_hcalls.h (100%)
> rename tools/perf/{arch/powerpc/util => util/kvm-stat-arch}/book3s_hv_exits.h (100%)
> rename tools/perf/{arch/arm64/util/kvm-stat.c => util/kvm-stat-arch/kvm-stat-arm64.c} (62%)
> rename tools/perf/{arch/loongarch/util/kvm-stat.c => util/kvm-stat-arch/kvm-stat-loongarch.c} (77%)
> rename tools/perf/{arch/powerpc/util/kvm-stat.c => util/kvm-stat-arch/kvm-stat-powerpc.c} (78%)
> rename tools/perf/{arch/riscv/util/kvm-stat.c => util/kvm-stat-arch/kvm-stat-riscv.c} (57%)
> rename tools/perf/{arch/s390/util/kvm-stat.c => util/kvm-stat-arch/kvm-stat-s390.c} (77%)
> rename tools/perf/{arch/x86/util/kvm-stat.c => util/kvm-stat-arch/kvm-stat-x86.c} (88%)
> rename tools/perf/{arch/riscv/util => util/kvm-stat-arch}/riscv_trap_types.h (96%)
>
> --
> 2.53.0.rc1.225.gd81095ad13-goog
>
More information about the linux-arm-kernel
mailing list