[PATCH 2/2] perf_event: e500 support

Kumar Gala galak at kernel.crashing.org
Fri Mar 5 03:48:03 EST 2010


On Feb 25, 2010, at 6:09 PM, Scott Wood wrote:

> This implements perf_event support for the Freescale embedded performance
> monitor, based on the existing perf_event.c that supports server/classic
> chips.
> 
> Some limitations:
> - Performance monitor interrupts are regular EE interrupts, and thus you
>  can't profile places with interrupts disabled.  We may want to implement
>  soft IRQ-disabling, with perfmon interrupts exempted and treated as NMIs.
> - When trying to schedule multiple event groups at once, and using
>  restricted events, situations could arise where scheduling fails even
>  though it would be possible.  Consider three groups, each with two events.
>  One group has restricted events, the others don't.  The two non-restricted
>  groups are scheduled, then one is removed, which happens to occupy the two
>  counters that can't do restricted events.  The remaining non-restricted
>  group will not be moved to the non-restricted-capable counters to make
>  room if the restricted group tries to be scheduled.
> 
> Signed-off-by: Scott Wood <scottwood at freescale.com>
> ---
> Changes from previous version:
> - Factored out callchain makefile patch
> - Split up header files
> - Renamed pmu struct
> - Added threshold support
> 
> arch/powerpc/include/asm/perf_event.h              |  133 +----
> arch/powerpc/include/asm/perf_event_fsl_emb.h      |   50 ++
> .../asm/{perf_event.h => perf_event_server.h}      |    4 +-
> arch/powerpc/include/asm/reg_fsl_emb.h             |    2 +-
> arch/powerpc/kernel/Makefile                       |    4 +
> arch/powerpc/kernel/cputable.c                     |    2 +-
> arch/powerpc/kernel/e500-pmu.c                     |  129 ++++
> arch/powerpc/kernel/perf_event_fsl_emb.c           |  654 ++++++++++++++++++++
> arch/powerpc/platforms/Kconfig.cputype             |   10 +
> 9 files changed, 874 insertions(+), 114 deletions(-)
> rewrite arch/powerpc/include/asm/perf_event.h (92%)
> create mode 100644 arch/powerpc/include/asm/perf_event_fsl_emb.h
> rename arch/powerpc/include/asm/{perf_event.h => perf_event_server.h} (98%)
> create mode 100644 arch/powerpc/kernel/e500-pmu.c
> create mode 100644 arch/powerpc/kernel/perf_event_fsl_emb.c

Paul do you intend to Ack this or don't care?

- k



More information about the Linuxppc-dev mailing list