[PATCH 5/5] KVM: arm64: Remove redundant call to kvm_pmu_vcpu_reset()
alexandru.elisei at arm.com
Mon Dec 14 09:02:26 EST 2020
Thanks for having a look!
On 12/14/20 1:48 PM, Auger Eric wrote:
> On 12/1/20 4:01 PM, Alexandru Elisei wrote:
>> KVM_ARM_VCPU_INIT ioctl calls kvm_reset_vcpu(), which in turn resets the
>> PMU with a call to kvm_pmu_vcpu_reset(). The function zeroes the PMU
>> chained counters bitmap and stops all the counters with a perf event
>> attached. Because it is called before the VCPU has had the chance to run,
>> no perf events are in use and none are released.
>> kvm_arm_pmu_v3_enable(), called by kvm_vcpu_first_run_init() only if the
>> VCPU has not been initialized, also resets the PMU. kvm_pmu_vcpu_reset() in
> This sounds strange to me. kvm_vcpu_first_run_init() only is called if
> kvm_vcpu_initialized(vcpu) is true.
Typo on my part, the "not" should not be there. kvm_vcpu_first_run_init() is
called only if kvm_vcpu_initialized() returns true in kvm_arch_vcpu_ioctl_run().
>> this case does the exact same thing as the previous call, so remove it.
>> Signed-off-by: Alexandru Elisei <alexandru.elisei at arm.com>
>> arch/arm64/kvm/pmu-emul.c | 2 --
>> 1 file changed, 2 deletions(-)
>> diff --git a/arch/arm64/kvm/pmu-emul.c b/arch/arm64/kvm/pmu-emul.c
>> index 398f6df1bbe4..4ad66a532e38 100644
>> --- a/arch/arm64/kvm/pmu-emul.c
>> +++ b/arch/arm64/kvm/pmu-emul.c
>> @@ -850,8 +850,6 @@ int kvm_arm_pmu_v3_enable(struct kvm_vcpu *vcpu)
>> return -EINVAL;
>> - kvm_pmu_vcpu_reset(vcpu);
> this patch does not apply for me (vcpu->arch.pmu.ready = true; ?)
I should have mentioned it in the cover letter, this is on top of Marc's pmu-undef
it should work on top of commit 7521c3a9e630 ("KVM: arm64: Get ready of the PMU
ready state"), the branch was rebased since I sent the patches.
>> return 0;
More information about the linux-arm-kernel