powerpc/perf: e500 support
authorScott Wood <scottwood@freescale.com>
Fri, 26 Feb 2010 00:09:45 +0000 (18:09 -0600)
committerKumar Gala <galak@kernel.crashing.org>
Fri, 5 Mar 2010 09:04:08 +0000 (03:04 -0600)
commita11106544f33c104706ae42d27219a409b67478e
tree0ffb268e41d70951415cb3cc9526e6bc673229b1
parent9d6df3fdfc470c313b7ea13dbe8a63fb21ab7365
powerpc/perf: e500 support

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@freescale.com>
Acked-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/include/asm/perf_event.h
arch/powerpc/include/asm/perf_event_fsl_emb.h [new file with mode: 0644]
arch/powerpc/include/asm/perf_event_server.h [new file with mode: 0644]
arch/powerpc/include/asm/reg_fsl_emb.h
arch/powerpc/kernel/Makefile
arch/powerpc/kernel/cputable.c
arch/powerpc/kernel/e500-pmu.c [new file with mode: 0644]
arch/powerpc/kernel/perf_event_fsl_emb.c [new file with mode: 0644]
arch/powerpc/platforms/Kconfig.cputype