mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
KVM: arm64: Refuse to run VCPU if the PMU doesn't match the physical CPU
Userspace can assign a PMU to a VCPU with the KVM_ARM_VCPU_PMU_V3_SET_PMU device ioctl. If the VCPU is scheduled on a physical CPU which has a different PMU, the perf events needed to emulate a guest PMU won't be scheduled in and the guest performance counters will stop counting. Treat it as an userspace error and refuse to run the VCPU in this situation. Suggested-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20220127161759.53553-7-alexandru.elisei@arm.com
This commit is contained in:
committed by
Marc Zyngier
parent
6ee7fca2a4
commit
583cda1b0e
@@ -131,7 +131,11 @@ if a PMU event filter is already present.
|
||||
|
||||
Note that KVM will not make any attempts to run the VCPU on the physical CPUs
|
||||
associated with the PMU specified by this attribute. This is entirely left to
|
||||
userspace.
|
||||
userspace. However, attempting to run the VCPU on a physical CPU not supported
|
||||
by the PMU will fail and KVM_RUN will return with
|
||||
exit_reason = KVM_EXIT_FAIL_ENTRY and populate the fail_entry struct by setting
|
||||
hardare_entry_failure_reason field to KVM_EXIT_FAIL_ENTRY_CPU_UNSUPPORTED and
|
||||
the cpu field to the processor id.
|
||||
|
||||
2. GROUP: KVM_ARM_VCPU_TIMER_CTRL
|
||||
=================================
|
||||
|
||||
Reference in New Issue
Block a user