Re: [PATCH v9 03/16] KVM: arm64: PMU: Freeze counter count after first run
Fuad Tabba <[email protected]> Wed, 29 Jul 2026 16:19:31 +0100
| Newsgroups | org.kernel.vger.linux-hardening,dev.linux.lists.kvmarm,org.infradead.lists.linux-arm-kernel,org.kernel.vger.kvm,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest |
|---|---|
| Message-ID | <CA+EHjTyYk0Dcc-8RbvQZHFBZ7HM7cekfg3O5MR4jo57qX5SohA@mail.gmail.com> |
On Mon, 20 Jul 2026 at 06:39, Akihiko Odaki <[email protected]> wrote: > > PMU configuration is VM-scoped, but SET_NR_COUNTERS can be issued > through any vCPU. Checking only whether that vCPU's PMU has been > initialized allows userspace to change the counter count through an idle > sibling after another vCPU has run. > > Reject the attribute once any vCPU has run. This keeps the VM-wide > implemented counter mask and the PMCR_EL0.N value stable after guest > execution begins. > > Fixes: b7628c797376 ("KVM: arm64: Allow userspace to limit the number of PMU counters for EL2 VMs") > Assisted-by: Codex:gpt-5.6-sol > Signed-off-by: Akihiko Odaki <[email protected]> Reviewed-by: Fuad Tabba <[email protected]> Cheers, /fuad > --- > arch/arm64/kvm/pmu-emul.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/arm64/kvm/pmu-emul.c b/arch/arm64/kvm/pmu-emul.c > index b5df6843dbcd..b4b877f31097 100644 > --- a/arch/arm64/kvm/pmu-emul.c > +++ b/arch/arm64/kvm/pmu-emul.c > @@ -1087,6 +1087,9 @@ static int kvm_arm_pmu_v3_set_nr_counters(struct kvm_vcpu *vcpu, unsigned int n) > { > struct kvm *kvm = vcpu->kvm; > > + if (kvm_vm_has_ran_once(kvm)) > + return -EBUSY; > + > if (!kvm->arch.arm_pmu) > return -EINVAL; > > > -- > 2.55.0 > >