[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