summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Herring (Arm) <robh@kernel.org>2025-02-18 14:39:56 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-05-29 11:02:34 +0200
commite359d62886cb1d7224e331575d6ab07f97b7fb14 (patch)
treeb87d52edd409d1391bf26709e264fe80a4ce3c55
parentb38fbf98645be29e53f02380fa679237f667fded (diff)
perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters
[ Upstream commit 04bd15c4cbc3f7bd2399d1baab958c5e738dbfc9 ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/perf/arm_pmuv3.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/perf/arm_pmuv3.c b/drivers/perf/arm_pmuv3.c
index 0afe02f879b4..d9b56f0f9094 100644
--- a/drivers/perf/arm_pmuv3.c
+++ b/drivers/perf/arm_pmuv3.c
@@ -816,10 +816,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)