From: Rob Herring (Arm) Date: Tue, 18 Feb 2025 20:39:56 +0000 (-0600) Subject: perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=04bd15c4cbc3f7bd2399d1baab958c5e738dbfc9;p=users%2Fwilly%2Fxarray.git perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters 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) Reviewed-by: Anshuman Khandual Tested-by: James Clark Link: https://lore.kernel.org/r/20250218-arm-brbe-v19-v20-1-4e9922fc2e8e@kernel.org Signed-off-by: Will Deacon --- diff --git a/drivers/perf/arm_pmuv3.c b/drivers/perf/arm_pmuv3.c index 3785522a08e7..ab070d525751 100644 --- a/drivers/perf/arm_pmuv3.c +++ b/drivers/perf/arm_pmuv3.c @@ -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)