Re: [PATCH V4 0/5] powerpc, perf: BHRB based branch stack enablement on POWER8

From: Michael Neuling
Date: Thu Apr 25 2013 - 23:12:00 EST


Anshuman,

IIRC there are new bits in the FSCR and HFSCR you need to enable for the
PMU and BRHB. Can you please check these are enabled?

Mikey

Anshuman Khandual <khandual@xxxxxxxxxxxxxxxxxx> wrote:
> Branch History Rolling Buffer (BHRB) is a new PMU feaure in IBM
> POWER8 processor which records the branch instructions inside the execution
> pipeline. This patchset enables the basic functionality of the feature through
> generic perf branch stack sampling framework.
>
> Sample output
> -------------
> $./perf record -b top
> $./perf report
>
> Overhead Command Source Shared Object Source Symbol Target Shared Object Target Symbol
> # ........ ....... .................... ...................................... .................... ...................................
> #
>
> 7.82% top libc-2.11.2.so [k] _IO_vfscanf libc-2.11.2.so [k] _IO_vfscanf
> 6.17% top libc-2.11.2.so [k] _IO_vfscanf [unknown] [k] 00000000
> 2.37% top [unknown] [k] 0xf7aafb30 [unknown] [k] 00000000
> 1.80% top [unknown] [k] 0x0fe07978 libc-2.11.2.so [k] _IO_vfscanf
> 1.60% top libc-2.11.2.so [k] _IO_vfscanf [kernel.kallsyms] [k] .do_task_stat
> 1.20% top [kernel.kallsyms] [k] .do_task_stat [kernel.kallsyms] [k] .do_task_stat
> 1.02% top libc-2.11.2.so [k] vfprintf libc-2.11.2.so [k] vfprintf
> 0.92% top top [k] _init [unknown] [k] 0x0fe037f4
>
> Changes in V2
> --------------
> - Added copyright messages to the newly created files
> - Modified couple of commit messages
>
> Changes in V3
> -------------
> - Incorporated review comments from Segher https://lkml.org/lkml/2013/4/16/350
> - Worked on a solution for review comment from Michael Ellerman https://lkml.org/lkml/2013/4/17/548
> - Could not move updated cpu_hw_events structure from core-book3s.c file into perf_event_server.h
> Because perf_event_server.h is pulled in first inside linux/perf_event.h before the definition of
> perf_branch_entry structure. Thats the reason why perf_branch_entry definition is not available
> inside perf_event_server.h where we define the array inside cpu_hw_events structure.
>
> - Finally have pulled in the code from perf_event_bhrb.c into core-book3s.c
>
> - Improved documentation for the patchset
>
> Changes in V4
> -------------
> - Incorporated review comments on V3 regarding new instruction encoding
>
> Anshuman Khandual (5):
> powerpc, perf: Add new BHRB related instructions for POWER8
> powerpc, perf: Add basic assembly code to read BHRB entries on POWER8
> powerpc, perf: Add new BHRB related generic functions, data and flags
> powerpc, perf: Define BHRB generic functions, data and flags for POWER8
> powerpc, perf: Enable branch stack sampling framework
>
> arch/powerpc/include/asm/perf_event_server.h | 7 ++
> arch/powerpc/include/asm/ppc-opcode.h | 8 ++
> arch/powerpc/perf/Makefile | 2 +-
> arch/powerpc/perf/bhrb.S | 44 +++++++
> arch/powerpc/perf/core-book3s.c | 167 ++++++++++++++++++++++++++-
> arch/powerpc/perf/power8-pmu.c | 57 ++++++++-
> 6 files changed, 280 insertions(+), 5 deletions(-)
> create mode 100644 arch/powerpc/perf/bhrb.S
>
> --
> 1.7.11.7
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/