[PATCH] ARMv7: fix Oprofile events count

Gadiyar, Anand gadiyar at ti.com
Mon Dec 14 07:28:36 EST 2009


Jean Pihet wrote:
> 
> Hi,
> 
> Here is a patch that fixes the oprofile events count.
> If it is OK I will submit it to the patch system.
> 
> Any thought?
> 
> Regards,
> Jean
> 
> ---
> ARMv7: fix Oprofile events count
>     
>     On Oprofile ARMv7 the PMNC_D bit was set to lower the PMU IRQs
>     and so to decrease the risk of errata #628216 from appearing.
>     The effect of setting the PMNC_D bit is that the CCNT counter
>     is divided by 64, making the program counter events count
>     inaccurate.
>     The new OMAP3 r4 cores should have that errata fixed.
>     
>     The PMNC_D bit should not be set, this patch fixes it.


Not an expert, so this is just a general comment.

Many OMAP3's don't have this newer core, right?
Does it make sense to clear this bit for all ARMv7s?

- Anand

>     
>     Signed-off-by: Jean Pihet <jpihet at mvista.com>
> 
> diff --git a/arch/arm/oprofile/op_model_v7.c
> b/arch/arm/oprofile/op_model_v7.c
> index f20295f..2088a6c 100644
> --- a/arch/arm/oprofile/op_model_v7.c
> +++ b/arch/arm/oprofile/op_model_v7.c
> @@ -191,12 +191,8 @@ int armv7_setup_pmnc(void)
>                 return -EBUSY;
>         }
>  
> -       /*
> -        * Initialize & Reset PMNC: C bit, D bit and P bit.
> -        *  Note: Using a slower count for CCNT (D bit: divide by 64) results
> -        *   in a more stable system
> -        */
> -       armv7_pmnc_write(PMNC_P | PMNC_C | PMNC_D);
> +       /* Initialize & Reset PMNC: C bit and P bit */
> +       armv7_pmnc_write(PMNC_P | PMNC_C);
>  
>  
>         for (cnt = CCNT; cnt < CNTMAX; cnt++) {
> 
> 
> 
> 



More information about the linux-arm-kernel mailing list