On 12/18/2013 07:44 AM, Michael Ellerman wrote: > From: Anshuman Khandual <khand...@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 <khand...@linux.vnet.ibm.com> > [mpe: Fixed up whitespace and cleaned up changelog]
Thanks Michael for cleaning and resending this out. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev