[PATCH v3 6/9] kvm: arm/arm64: Add host pmu to support VM introspection
From: Punit Agrawal <hidden>
Date: 2017-01-18 13:07:12
Also in:
kvm, kvmarm, lkml
Hi Marc, Marc Zyngier [off-list ref] writes:
+Mark On 10/01/17 11:38, Punit Agrawal wrote:quoted
Both AArch32 and AArch64 mode of the ARMv8 architecture support trapping certain VM operations, e.g, TLB and cache maintenance operations. Selective trapping of these operations for specific VMs can be used to track the frequency with which these occur during execution. Add a software PMU on the host that can support tracking VM operations (in the form of PMU events). Supporting new events requires providing callbacks to configure the VM to enable/disable the trapping and read a count of the frequency. The host PMU events can be controlled by tools like perf that use standard kernel perf interfaces. Signed-off-by: Punit Agrawal <redacted> Cc: Christoffer Dall <redacted> Cc: Marc Zyngier <redacted> Cc: Will Deacon <redacted> --- arch/arm/include/asm/kvm_host.h | 8 ++ arch/arm/kvm/arm.c | 2 + arch/arm64/include/asm/kvm_host.h | 8 ++ virt/kvm/arm/host_pmu.c | 272 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 290 insertions(+) create mode 100644 virt/kvm/arm/host_pmu.c
[...]
quoted
This patch really makes me think that there is nothing arm-specific in here at all. Why can't it be a generic feature through which architectures can expose events in a generic way (or as close as possible to being generic)?
I wasn't sure if other architectures are interested in the functionality - that's the only reason. Having said that, it can be turned off in the config so there shouldn't be any complaints. I'll move this to virt/kvm in the next incarnation. Thanks for taking a look.
Thanks, M.