[RFC PATCH 0/3]perf/core: extend perf_reg and perf_sample_regs_intr

Stephane Eranian eranian at googlemail.com
Thu Nov 5 06:42:31 PST 2015


Hi,

On Wed, Nov 4, 2015 at 9:46 PM, Madhavan Srinivasan
<maddy at linux.vnet.ibm.com> wrote:
>
> This patchset extend the perf sample regs infrastructure
> to include architecture specific regs. Current perf_sample_regs_intr
> exports only registers in the pt_regs to perf.data using
> PERF_SAMPLE_REGS_INTR sample type. But sometimes we end up looking
> for or prefer raw register values at the interrupt during debug.
>
I don't quite understand this explanation here.
What do you mean by raw register values?
The content of pt_regs is also raw register values at interrupt.

The API does not say that the content of perf_sample_regs_intr can ONLY
contain names of registers coming from pt_regs. The meaning of each bit
is arch specific and you are free to map to whatever is relevant for your arch.
All the API says is that the values captured in the sampling buffer for these
registers are taken at PMU interrupt.

>
> This patchset extends the perf_regs to include arch specific struct,
> and makes perf_sample_regs_intr in kernel/event/core.c as __weak__
> function. This way, an arch specific implementation of
> perf_sample_regs_intr() can update the arch specific data to
> the perf_regs.
>
> First patch defines a new structure arch_misc_reg and updates the same
> in the struct perf_regs. Patch also modifies the perf_reg_value()
> and perf_output_sample_regs() to take perf_regs parameter instead of pt_regs.
>
> Second patch updates struct arch_misc_reg for arch/powerpc with pmu registers
> and adds offsetof macro for the same. It extends perf_reg_value()
> to use reg idx to decide on struct to return value from.
>
> Third patch adds arch specific perf_sample_regs_intr() in arch/powerpc
> to hook up the arch_misc_regs to perf_regs.
>
> This patchset depends on the recent posting by Anju T in
> linuxppc-dev at lists.ozlabs.org to enable PERF_SAMPLE_REGS_INTR
> support in arch/powerpc.
>
> https://patchwork.ozlabs.org/patch/539242/
> https://patchwork.ozlabs.org/patch/539243/
> https://patchwork.ozlabs.org/patch/539244/
>
> Would appreciate comments and feedback.
>
> Signed-off-by: Madhavan Srinivasan <maddy at linux.vnet.ibm.com>
> Cc: Thomas Gleixner <tglx at linutronix.de>
> Cc: Ingo Molnar <mingo at kernel.org>
> Cc: Peter Zijlstra <peterz at infradead.org>
> Cc: Jiri Olsa <jolsa at kernel.org>
> Cc: Arnaldo Carvalho de Melo <acme at kernel.org>
> Cc: Stephane Eranian <eranian at gmail.com>
> Cc: Russell King <linux at arm.linux.org.uk>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Will Deacon <will.deacon at arm.com>
> Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> Cc: Michael Ellerman <mpe at ellerman.id.au>
> Cc: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
>
> Madhavan Srinivasan (3):
>   perf/core: extend perf_regs to include arch specific regs
>   perf/powerpc: update macros and add regs to arch_misc_reg struct
>   perf/powerpc: Functions to update arch_misc_regs
>
>  arch/arm/include/asm/ptrace.h               |  2 ++
>  arch/arm/kernel/perf_regs.c                 |  4 +++-
>  arch/arm64/include/asm/ptrace.h             |  2 ++
>  arch/arm64/kernel/perf_regs.c               |  4 +++-
>  arch/powerpc/include/uapi/asm/perf_regs.h   | 10 ++++++++++
>  arch/powerpc/include/uapi/asm/ptrace.h      | 11 +++++++++++
>  arch/powerpc/perf/core-book3s.c             | 29 +++++++++++++++++++++++++++++
>  arch/powerpc/perf/perf_regs.c               | 28 ++++++++++++++++++++++++++--
>  arch/x86/include/asm/ptrace.h               |  2 ++
>  arch/x86/kernel/perf_regs.c                 |  4 +++-
>  include/linux/perf_regs.h                   |  5 +++--
>  kernel/events/core.c                        |  8 ++++----
>  tools/perf/arch/powerpc/include/perf_regs.h | 16 ++++++++++++++++
>  13 files changed, 114 insertions(+), 11 deletions(-)
>
> --
> 1.9.1
>



More information about the linux-arm-kernel mailing list