]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters
authorRob Herring (Arm) <robh@kernel.org>
Tue, 18 Feb 2025 20:39:56 +0000 (14:39 -0600)
committerWill Deacon <will@kernel.org>
Sat, 1 Mar 2025 05:08:10 +0000 (05:08 +0000)
Counting events related to setup of the PMU is not desired, but
kvm_vcpu_pmu_resync_el0() is called just after the PMU counters have
been enabled. Move the call to before enabling the counters.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Tested-by: James Clark <james.clark@linaro.org>
Link: https://lore.kernel.org/r/20250218-arm-brbe-v19-v20-1-4e9922fc2e8e@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/arm_pmuv3.c

index 3785522a08e7567fcb8136a22aea57f3a266256c..ab070d525751785ed2ec3cacebb66392cb285efa 100644 (file)
@@ -825,10 +825,10 @@ static void armv8pmu_start(struct arm_pmu *cpu_pmu)
        else
                armv8pmu_disable_user_access();
 
+       kvm_vcpu_pmu_resync_el0();
+
        /* Enable all counters */
        armv8pmu_pmcr_write(armv8pmu_pmcr_read() | ARMV8_PMU_PMCR_E);
-
-       kvm_vcpu_pmu_resync_el0();
 }
 
 static void armv8pmu_stop(struct arm_pmu *cpu_pmu)