[PATCH v3 0/5] perf Cross platform KVM support

Ian Rogers posted 5 patches 3 days, 20 hours ago
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/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}       |  49 ++--
.../kvm-stat-arch/kvm-stat-powerpc.c}         |  61 ++---
.../kvm-stat-arch/kvm-stat-riscv.c}           |  42 ++--
.../kvm-stat-arch/kvm-stat-s390.c}            |  40 ++--
.../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                    |  79 +++++--
.../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 +
39 files changed, 590 insertions(+), 215 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%)
[PATCH v3 0/5] perf Cross platform KVM support
Posted by Ian Rogers 3 days, 20 hours ago
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.

v3: Fix NO_LIBTRACEEVENT=1 build, kvm-stat-loongarch.c for old elf.h
    files and 32-bit build of kvm-stat-s390.c as reported by
    Arnaldo. Drop the first kvm stat live test patch that Arnaldo
    reported as merged.

v2: Wire up the perf data header to have the e_machine and allow early
    initialization of the KVM operations based upon it.
    https://lore.kernel.org/lkml/20260131200224.1296136-1-irogers@google.com/#t

v1: https://lore.kernel.org/lkml/20260128074106.788156-1-irogers@google.com/

Ian Rogers (5):
  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/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}       |  49 ++--
 .../kvm-stat-arch/kvm-stat-powerpc.c}         |  61 ++---
 .../kvm-stat-arch/kvm-stat-riscv.c}           |  42 ++--
 .../kvm-stat-arch/kvm-stat-s390.c}            |  40 ++--
 .../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                    |  79 +++++--
 .../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 +
 39 files changed, 590 insertions(+), 215 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.rc2.204.g2597b5adb4-goog