[PATCH v1 0/5] perf kvm: Add stat support on arm64

From: Zenghui Yu
Date: Wed Jun 12 2019 - 05:19:44 EST


'perf kvm stat report/record' generates a statistical analysis of KVM
events and can be used to analyze guest exit reasons. This series tries
to add stat support on arm64 (Port perf-kvm-stat to arm64 - this is
already supported on x86).

"record" enables recording of two pair of tracepoints:
- "kvm:kvm_entry" and "kvm:kvm_exit"
- "kvm:kvm_trap_enter" and "kvm:kvm_trap_exit"
"report" reports statistical analysis of guest exit&trap events.

To record kvm events on the host:
# perf kvm stat record -a

To report kvm VM EXIT events:
# perf kvm stat report --event=vmexit

To report kvm VM TRAP (synchronous exceptions) events:
# perf kvm stat report --event=trap

More information can be found at tools/perf/Documentation/perf-kvm.txt.

* Patch 1-2 touch KVM/ARM side, with #1 is cleanup and #2 is preparation
for perf-kvm-stat support.
* Patch 3-5 touch perf side.
* Patch 3 adds support for get_cpuid() function on arm64. *RFC!*
* Patch 4 adds support for perf-kvm-stat on arm64, with VM-EXIT events.
* Patch 5 adds support to report TRAP-EVENT events.

Any suggestions, comments and test results will be appreciated.

Thanks,
zenghui

---

Zenghui Yu (5):
KVM: arm/arm64: Remove kvm_mmio_emulate tracepoint
KVM: arm/arm64: Adjust entry/exit and trap related tracepoints
perf tools arm64: Add support for get_cpuid() function
perf,kvm/arm64: Add stat support on arm64
perf,kvm/arm64: perf-kvm-stat to report VM TRAP

arch/arm64/kvm/handle_exit.c | 3 +
arch/arm64/kvm/trace.h | 35 +++++++
tools/perf/arch/arm64/Makefile | 2 +
tools/perf/arch/arm64/util/Build | 1 +
tools/perf/arch/arm64/util/aarch64_guest_exits.h | 91 +++++++++++++++++
tools/perf/arch/arm64/util/header.c | 74 +++++++++-----
tools/perf/arch/arm64/util/kvm-stat.c | 125 +++++++++++++++++++++++
virt/kvm/arm/arm.c | 4 +-
virt/kvm/arm/trace.h | 42 ++------
9 files changed, 317 insertions(+), 60 deletions(-)
create mode 100644 tools/perf/arch/arm64/util/aarch64_guest_exits.h
create mode 100644 tools/perf/arch/arm64/util/kvm-stat.c

--
1.8.3.1