[PATCH] powerpc, perf: Configure BHRB filter before enabling PMU interrupts

Anshuman Khandual khandual at linux.vnet.ibm.com
Wed Dec 18 14:41:38 EST 2013


On 12/18/2013 07:44 AM, Michael Ellerman wrote:
> From: Anshuman Khandual <khandual at linux.vnet.ibm.com>
> 
> Right now the config_bhrb() PMU specific call happens after
> write_mmcr0(), which actually enables the PMU for event counting and
> interrupts. So there is a small window of time where the PMU and BHRB
> runs without the required HW branch filter (if any) enabled in BHRB.
> 
> This can cause some of the branch samples to be collected through BHRB
> without any filter applied and hence affects the correctness of
> the results. This patch moves the BHRB config function call before
> enabling interrupts.
> 
> Here are some data points captured via trace prints which depicts how we
> could get PMU interrupts with BHRB filter NOT enabled with a standard
> perf record command line (asking for branch record information as well).
> 
>     $ perf record -j any_call ls
> 
> Before the patch:-
> 
>     ls-1962  [003] d...  2065.299590: .perf_event_interrupt: MMCRA: 40000000000
>     ls-1962  [003] d...  2065.299603: .perf_event_interrupt: MMCRA: 40000000000
>     ...
> 
>     All the PMU interrupts before this point did not have the requested
>     HW branch filter enabled in the MMCRA.
> 
>     ls-1962  [003] d...  2065.299647: .perf_event_interrupt: MMCRA: 40040000000
>     ls-1962  [003] d...  2065.299662: .perf_event_interrupt: MMCRA: 40040000000
> 
> After the patch:-
> 
>     ls-1850  [008] d...   190.311828: .perf_event_interrupt: MMCRA: 40040000000
>     ls-1850  [008] d...   190.311848: .perf_event_interrupt: MMCRA: 40040000000
> 
>     All the PMU interrupts have the requested HW BHRB branch filter
>     enabled in MMCRA.
> 
> Signed-off-by: Anshuman Khandual <khandual at linux.vnet.ibm.com>
> [mpe: Fixed up whitespace and cleaned up changelog]

Thanks Michael for cleaning and resending this out.



More information about the Linuxppc-dev mailing list