arm64: arm_pmu: Remove unnecessary isb instruction
authorAndrew Murray <andrew.murray@arm.com>
Tue, 9 Apr 2019 19:22:10 +0000 (20:22 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Wed, 24 Apr 2019 14:34:31 +0000 (15:34 +0100)
The armv8pmu_enable_event_counter function issues an isb instruction
after enabling a pair of counters - this doesn't provide any value
and is inconsistent with the armv8pmu_disable_event_counter.

In any case armv8pmu_enable_event_counter is always called with the
PMU stopped. Starting the PMU with armv8pmu_start results in an isb
instruction being issued prior to writing to PMCR_EL0.

Let's remove the unnecessary isb instruction.

Signed-off-by: Andrew Murray <andrew.murray@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
arch/arm64/kernel/perf_event.c

index 4addb38bc250b711aff75278fff59746a356db02..cccf4fc86d6791e03798dd4c73ba446234b0ffb5 100644 (file)
@@ -533,7 +533,6 @@ static inline void armv8pmu_enable_event_counter(struct perf_event *event)
        armv8pmu_enable_counter(idx);
        if (armv8pmu_event_is_chained(event))
                armv8pmu_enable_counter(idx - 1);
-       isb();
 }
 
 static inline int armv8pmu_disable_counter(int idx)