Commit ee5ff26e authored by Reiji Watanabe's avatar Reiji Watanabe Committed by Lee Jones
Browse files

UPSTREAM: KVM: arm64: PMU: Restore the guest's EL0 event counting after migration



Currently, with VHE, KVM enables the EL0 event counting for the
guest on vcpu_load() or KVM enables it as a part of the PMU
register emulation process, when needed.  However, in the migration
case (with VHE), the same handling is lacking, as vPMU register
values that were restored by userspace haven't been propagated yet
(the PMU events haven't been created) at the vcpu load-time on the
first KVM_RUN (kvm_vcpu_pmu_restore_guest() called from vcpu_load()
on the first KVM_RUN won't do anything as events_{guest,host} of
kvm_pmu_events are still zero).

So, with VHE, enable the guest's EL0 event counting on the first
KVM_RUN (after the migration) when needed.  More specifically,
have kvm_pmu_handle_pmcr() call kvm_vcpu_pmu_restore_guest()
so that kvm_pmu_handle_pmcr() on the first KVM_RUN can take
care of it.

Bug: 254441685
Fixes: d0c94c49 ("KVM: arm64: Restore PMU configuration on first run")
Cc: stable@vger.kernel.org
Reviewed-by: default avatarMarc Zyngier <maz@kernel.org>
Signed-off-by: default avatarReiji Watanabe <reijiw@google.com>
Link: https://lore.kernel.org/r/20230329023944.2488484-1-reijiw@google.com


Signed-off-by: default avatarOliver Upton <oliver.upton@linux.dev>
(cherry picked from commit f9ea835e)
Signed-off-by: default avatarLee Jones <joneslee@google.com>
Change-Id: If21e3b7ff7e06493715ae63ae3787fb0dfab9821
parent 59b8fa4b
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment