[PATCH 5/6] perf_counter: powerpc: Add processor back-end for MPC7450 family
Kumar Gala
galak at kernel.crashing.org
Thu Jun 18 00:14:58 EST 2009
On Jun 17, 2009, at 6:53 AM, Paul Mackerras wrote:
> This adds support for the performance monitor hardware on the
> MPC7450 family of processors (7450, 7451, 7455, 7447/7457, 7447A,
> 7448), used in the later Apple G4 powermacs/powerbooks and other
> machines. These machines have 6 hardware counters with a unique
> set of events which can be counted on each counter, with some
> events being available on multiple counters.
>
> Raw event codes for these processors are (PMC << 8) + PMCSEL.
> If PMC is non-zero then the event is that selected by the given
> PMCSEL value for that PMC (hardware counter). If PMC is zero
> then the event selected is one of the low-numbered ones that are
> common to several PMCs. In this case PMCSEL must be <= 22 and
> the event is what that PMCSEL value would select on PMC1 (but
> it may be placed any other PMC that has the same event for that
> PMCSEL value).
>
> For events that count cycles or occurrences that exceed a threshold,
> the threshold requested can be specified in the 0x3f000 bits of the
> raw event codes. If the event uses the threshold multiplier bit
> and that bit should be set, that is indicated with the 0x40000 bit
> of the raw event code.
>
> This fills in some of the generic cache events. Unfortunately there
> are quite a few blank spaces in the table, partly because these
> processors tend to count cache hits rather than cache accesses.
>
> Signed-off-by: Paul Mackerras <paulus at samba.org>
> ---
> arch/powerpc/kernel/Makefile | 2 +
> arch/powerpc/kernel/mpc7450-pmu.c | 417 +++++++++++++++++++++++
> +++++++++
> arch/powerpc/platforms/Kconfig.cputype | 1 +
> 3 files changed, 420 insertions(+), 0 deletions(-)
> create mode 100644 arch/powerpc/kernel/mpc7450-pmu.c
>
> diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/
> Makefile
> index c5f93f0..a9f8829 100644
> --- a/arch/powerpc/kernel/Makefile
> +++ b/arch/powerpc/kernel/Makefile
> @@ -98,6 +98,7 @@ obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
> obj-$(CONFIG_PPC_PERF_CTRS) += perf_counter.o
> obj64-$(CONFIG_PPC_PERF_CTRS) += power4-pmu.o ppc970-pmu.o power5-
> pmu.o \
> power5+-pmu.o power6-pmu.o power7-pmu.o
This should be something like:
obj64-$(CONFIG_PPC_PERF_CTRS)-$(PPC_BOOK3S_64)
> +obj32-$(CONFIG_PPC_PERF_CTRS) += mpc7450-pmu.o
obj32-$(CONFIG_PPC_PERF_CTRS)-$(PPC_BOOK3S_32)
Or use new Kconfig types as I suggested on patch 1/6
> obj-$(CONFIG_8XX_MINIMAL_FPEMU) += softemu8xx.o
>
> @@ -106,6 +107,7 @@ obj-y += iomap.o
> endif
>
> obj-$(CONFIG_PPC64) += $(obj64-y)
> +obj-$(CONFIG_PPC32) += $(obj32-y)
>
> ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC),)
> obj-y += ppc_save_regs.o
> diff --git a/arch/powerpc/kernel/mpc7450-pmu.c b/arch/pow
More information about the Linuxppc-dev
mailing list