powerpc/perf_counter: Add generic support for POWER-family PMU hardware
authorPaul Mackerras <paulus@samba.org>
Fri, 9 Jan 2009 09:21:55 +0000 (20:21 +1100)
committerPaul Mackerras <paulus@samba.org>
Sat, 10 Jan 2009 05:32:05 +0000 (16:32 +1100)
commit4574910e5087085a1f330ff8373cee4503f5c77c
treea3bb6c974c2314ca91ee2e3a33a7283187ad19ea
parent93a6d3ce6962044fe9badf528fed46b455d58292
powerpc/perf_counter: Add generic support for POWER-family PMU hardware

This provides the architecture-specific functions needed to access
PMU hardware on the 64-bit PowerPC processors.  It has been designed
for the IBM POWER family (POWER 4/4+/5/5+/6 and PPC970) but will
hopefully also suit other 64-bit PowerPC machines (although probably
not Cell given how different it is in this area).  This doesn't
include back-ends for any specific processors.

This implements a system which allows back-ends to express the
constraints that their hardware has on what events can be counted
simultaneously.  The constraints are expressed as a 64-bit mask +
64-bit value for each event, and the encoding is capable of
expressing the constraints arising from having a set of multiplexers
feeding an event bus, with some events being available through
multiple multiplexer settings, such as we get on POWER4 and PPC970.
Furthermore, the back-end can supply alternative event codes for
each event, and the constraint checking code will try all possible
combinations of alternative event codes to try to find a combination
that will fit.

Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/include/asm/perf_counter.h
arch/powerpc/kernel/Makefile
arch/powerpc/kernel/perf_counter.c [new file with mode: 0644]