On Wed, May 22, 2013 at 11:52:38AM +0530, Anshuman Khandual wrote:
> Enables conditional branch filter support for POWER8
> utilizing MMCRA register based filter and also invalidates
> a BHRB branch filter combination involving conditional
> branches.
> 
> Signed-off-by: Anshuman Khandual <khand...@linux.vnet.ibm.com>
> ---
>  arch/powerpc/perf/power8-pmu.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/arch/powerpc/perf/power8-pmu.c b/arch/powerpc/perf/power8-pmu.c
> index 8ed323d..e60b38f 100644
> --- a/arch/powerpc/perf/power8-pmu.c
> +++ b/arch/powerpc/perf/power8-pmu.c
> @@ -548,11 +548,21 @@ static u64 power8_bhrb_filter_map(u64 
> branch_sample_type)
>       if (branch_sample_type & PERF_SAMPLE_BRANCH_IND_CALL)
>               return -1;
>  
> +     /* Invalid branch filter combination - HW does not support */
> +     if ((branch_sample_type & PERF_SAMPLE_BRANCH_ANY_CALL) &&
> +                     (branch_sample_type & PERF_SAMPLE_BRANCH_COND))
> +             return -1;
> +
>       if (branch_sample_type & PERF_SAMPLE_BRANCH_ANY_CALL) {
>               pmu_bhrb_filter |= POWER8_MMCRA_IFM1;
>               return pmu_bhrb_filter;
>       }
>  
> +     if (branch_sample_type & PERF_SAMPLE_BRANCH_COND) {
> +             pmu_bhrb_filter |= POWER8_MMCRA_IFM3;
> +             return pmu_bhrb_filter;
> +     }
> +
>       /* Every thing else is unsupported */
>       return -1;
>  }

So I suppose you've seen what x86 does in this case? ;-) I'm not saying
you _have_ to do the software filter, but I would like the changelog to at
least mention the issue.

In fact, I suppose that should have been in the original patches :/ as
this patch series only adds the conditional branch support. 

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to