[PATCH] arm64: perf: fix event number mask

Will Deacon will.deacon at arm.com
Fri Oct 25 11:16:26 EDT 2013


On Fri, Oct 18, 2013 at 01:59:06PM +0100, Vinayak Kale wrote:
> This patch fixes ARMV8_EVTYPE_* macros since evtCount (event number)
> field width is 10bits in event selection register.
> 
> Signed-off-by: Vinayak Kale <vkale at apm.com>
> ---
>  arch/arm64/kernel/perf_event.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c
> index cea1594..5d14470 100644
> --- a/arch/arm64/kernel/perf_event.c
> +++ b/arch/arm64/kernel/perf_event.c
> @@ -784,8 +784,8 @@ static const unsigned armv8_pmuv3_perf_cache_map[PERF_COUNT_HW_CACHE_MAX]
>  /*
>   * PMXEVTYPER: Event selection reg
>   */
> -#define	ARMV8_EVTYPE_MASK	0xc80000ff	/* Mask for writable bits */
> -#define	ARMV8_EVTYPE_EVENT	0xff		/* Mask for EVENT bits */
> +#define	ARMV8_EVTYPE_MASK	0xc80003ff	/* Mask for writable bits */
> +#define	ARMV8_EVTYPE_EVENT	0x3ff		/* Mask for EVENT bits */
>  
>  /*
>   * Event filters for PMUv3
> @@ -1175,7 +1175,8 @@ static void armv8pmu_reset(void *info)
>  static int armv8_pmuv3_map_event(struct perf_event *event)
>  {
>  	return map_cpu_event(event, &armv8_pmuv3_perf_map,
> -				&armv8_pmuv3_perf_cache_map, 0xFF);
> +				&armv8_pmuv3_perf_cache_map,
> +				ARMV8_EVTYPE_EVENT);
>  }
>  
>  static struct arm_pmu armv8pmu = {

Acked-by: Will Deacon <will.deacon at arm.com>

Will



More information about the linux-arm-kernel mailing list