1
linux/arch/powerpc/platforms
Paul Mackerras 105988c015 perf_counter: powerpc: Enable use of software counters on 32-bit powerpc
This enables the perf_counter subsystem on 32-bit powerpc.  Since we
don't have any support for hardware counters on 32-bit powerpc yet,
only software counters can be used.

Besides selecting HAVE_PERF_COUNTERS for 32-bit powerpc as well as
64-bit, the main thing this does is add an implementation of
set_perf_counter_pending().  This needs to arrange for
perf_counter_do_pending() to be called when interrupts are enabled.
Rather than add code to local_irq_restore as 64-bit does, the 32-bit
set_perf_counter_pending() generates an interrupt by setting the
decrementer to 1 so that a decrementer interrupt will become pending
in 1 or 2 timebase ticks (if a decrementer interrupt isn't already
pending).  When interrupts are enabled, timer_interrupt() will be
called, and some new code in there calls perf_counter_do_pending().
We use a per-cpu array of flags to indicate whether we need to call
perf_counter_do_pending() or not.

This introduces a couple of new Kconfig symbols: PPC_HAVE_PMU_SUPPORT,
which is selected by processor families for which we have hardware PMU
support (currently only PPC64), and PPC_PERF_CTRS, which enables the
powerpc-specific perf_counter back-end.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: linuxppc-dev@ozlabs.org
Cc: benh@kernel.crashing.org
LKML-Reference: <19000.55404.103840.393470@cargo.ozlabs.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-06-18 11:11:44 +02:00
..
8xx powerpc/cpm: Remove some cruft code and defines 2009-05-19 00:47:19 -05:00
40x Merge commit 'jwb/next' into next 2009-06-12 10:35:52 +10:00
44x powerpc/virtex: Add Xilinx ML510 reference design support 2009-06-06 10:15:24 -06:00
52xx powerpc/pci: Clean up direct access to sysdata by 52xx platforms 2009-05-21 15:44:22 +10:00
82xx Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2009-06-15 09:40:05 -07:00
83xx powerpc/fsl_soc: isolate legacy fsl_spi support to mpc832x_rdb boards 2009-04-01 08:59:23 -07:00
85xx powerpc/85xx: Add P2020DS board support 2009-05-19 00:50:43 -05:00
86xx powerpc/86xx: clean up smp init code 2009-05-19 00:50:20 -05:00
512x powerpc/kconfig: Kill PPC_MULTIPLATFORM 2009-03-11 17:11:35 +11:00
amigaone powerpc/kconfig: Kill PPC_MULTIPLATFORM 2009-03-11 17:11:35 +11:00
cell Merge branch 'akpm' 2009-06-16 19:50:13 -07:00
chrp powerpc/pci: Clean up direct access to sysdata by CHRP platforms 2009-05-21 15:44:23 +10:00
embedded6xx Merge commit 'origin/master' into next 2009-03-24 13:38:30 +11:00
iseries powerpc/iseries: Mark signal_vsp_instruction() as maybe unused 2009-06-15 13:27:37 +10:00
maple powerpc/maple: Add a quirk to disable MSI for IPR on Bimini 2009-05-22 16:01:11 +10:00
pasemi Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-05-18 21:08:20 -07:00
powermac powerpc/pci: Clean up direct access to sysdata by powermac platforms 2009-05-21 15:44:23 +10:00
prep powerpc/kconfig: Kill PPC_MULTIPLATFORM 2009-03-11 17:11:35 +11:00
ps3 ps3: Replace direct file operations by callback 2009-06-15 16:47:26 +10:00
pseries Merge commit 'origin/master' into next 2009-06-12 16:53:38 +10:00
fsl_uli1575.c powerpc/85xx: Add P2020DS board support 2009-05-19 00:50:43 -05:00
Kconfig powerpc/virtex: Add support for Xilinx PCI host bridge 2009-06-06 10:14:22 -06:00
Kconfig.cputype perf_counter: powerpc: Enable use of software counters on 32-bit powerpc 2009-06-18 11:11:44 +02:00
Makefile powerpc/amigaone: Add platform support for AmigaOne 2009-02-11 16:00:08 +11:00