On Tue, Nov 20, 2018 at 02:15:19PM +0000, Andrew Murray wrote:
> 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.
> 
> Let's remove the unnecessary isb instruction.
> 
> Signed-off-by: Andrew Murray <[email protected]>

Acked-by: Mark Rutland <[email protected]>

... though it would be nice to explicitly point out that the ISB in 
armv8pmu_start() is before the write to PMCR_EL1, if you happen to
respin this patch.

Mark.

> ---
>  arch/arm64/kernel/perf_event.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c
> index 8e38d52..de564ae 100644
> --- a/arch/arm64/kernel/perf_event.c
> +++ b/arch/arm64/kernel/perf_event.c
> @@ -652,7 +652,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)
> -- 
> 2.7.4
> 
_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to