KVM: arm64: Allow userspace to limit the number of PMU counters for EL2 VMs
authorMarc Zyngier <maz@kernel.org>
Wed, 9 Apr 2025 10:53:15 +0000 (11:53 +0100)
committerMarc Zyngier <maz@kernel.org>
Fri, 11 Apr 2025 12:08:23 +0000 (13:08 +0100)
commitb7628c7973765c856866b3047c9002ae0825add6
tree8da02e190846d06fd47f90cb1d1d068b8af2c41e
parent022435334393d56f4d6bc398cf16430067807b0a
KVM: arm64: Allow userspace to limit the number of PMU counters for EL2 VMs

As long as we had purely EL1 VMs, we could easily update the number
of guest-visible counters by letting userspace write to PMCR_EL0.N.

With VMs started at EL2, PMCR_EL1.N only reflects MDCR_EL2.HPMN,
and we don't have a good way to limit it.

For this purpose, introduce a new PMUv3 attribute that allows
limiting the maximum number of counters. This requires the explicit
selection of a PMU.

Suggested-by: Oliver Upton <oliver.upton@linux.dev>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Documentation/virt/kvm/devices/vcpu.rst
arch/arm64/include/uapi/asm/kvm.h
arch/arm64/kvm/pmu-emul.c