linux-stable/arch/mips
Deng-Cheng Zhu 91f017372a MIPS, Perf-events: Work with irq_work
This is the MIPS part of the following commit by Peter Zijlstra:

- e360adbe29
    irq_work: Add generic hardirq context callbacks

    Provide a mechanism that allows running code in IRQ context. It is
    most useful for NMI code that needs to interact with the rest of the
    system -- like wakeup a task to drain buffers.

    Perf currently has such a mechanism, so extract that and provide it as
    a generic feature, independent of perf so that others may also
    benefit.

    The IRQ context callback is generated through self-IPIs where
    possible, or on architectures like powerpc the decrementer (the
    built-in timer facility) is set to generate an interrupt immediately.

    Architectures that don't have anything like this get to do with a
    callback from the timer tick. These architectures can call
    irq_work_run() at the tail of any IRQ handlers that might enqueue such
    work (like the perf IRQ handler) to avoid undue latencies in
    processing the work.

For MIPSXX, we need to call irq_work_run() at the tail of the perf IRQ
handler as described above.

Reported-by: Wu Zhangjin <wuzhangjin@gmail.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: David Daney <ddaney@caviumnetworks.com>
Signed-off-by: Deng-Cheng Zhu <dengcheng.zhu@gmail.com>
To: fweisbec@gmail.com
To: will.deacon@arm.com
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Cc: paulus@samba.org
Cc: mingo@elte.hu
Cc: acme@redhat.com
Cc: matt@console-pimps.org
Cc: sshtylyov@mvista.com,
Patchwork: http://patchwork.linux-mips.org/patch/2011/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2011-03-14 21:07:26 +01:00
..
alchemy Merge branch 'master' into for-next 2010-12-22 18:57:02 +01:00
ar7 MIPS: AR7: Fix loops per jiffies on TNETD7200 devices 2010-12-16 18:10:56 +00:00
ath79 MIPS: ath79: add common WMAC device for AR913X based boards 2011-01-18 19:30:28 +01:00
bcm47xx MIPS: BCM47xx: Swap serial console if ttyS1 was specified. 2010-12-16 18:11:00 +00:00
bcm63xx MIPS: Decouple BMIPS CPU support from bcm47xx/bcm63xx SoC code 2010-10-29 19:08:50 +01:00
boot Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus 2010-10-18 13:10:36 -07:00
cavium-octeon MIPS: Add platform device and Kconfig for Octeon USB EHCI / OHCI 2010-10-29 19:08:45 +01:00
cobalt MIPS: Move Cobalt Makefile parts to their own Platform file 2010-08-05 13:25:47 +01:00
configs kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
dec set_rtc_mmss: show warning message only once 2011-01-13 08:03:07 -08:00
emma MIPS: Ritually kill stupid printk. 2010-08-05 13:26:27 +01:00
fw
include/asm MIPS, Perf-events: Work with irq_work 2011-03-14 21:07:26 +01:00
jazz MIPS: Add missing #inclusions of <linux/irq.h> 2010-10-07 14:08:54 +01:00
jz4740 Merge branch 'master' into for-next 2010-12-22 18:57:02 +01:00
kernel MIPS, Perf-events: Work with irq_work 2011-03-14 21:07:26 +01:00
lasat MIPS: Lasat: Migrate to new platform makefile style. 2010-08-05 13:25:53 +01:00
lib MIPS: Separate two consecutive loads in memset.S 2010-12-16 18:10:57 +00:00
loongson MIPS: Fix always CONFIG_LOONGSON_UART_BASE=y 2011-03-14 21:07:26 +01:00
math-emu MIPS: Fix GCC-4.6 'set but not used' warning in ieee754int.h 2011-03-14 21:07:26 +01:00
mipssim MIPS: MIPSsim: Migrate to new Platform file 2010-08-05 13:25:45 +01:00
mm MIPS: Fix GCC-4.6 'set but not used' warning in arch/mips/mm/init.c 2011-03-14 21:07:26 +01:00
mti-malta tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
nxp/pnx8550/common MIPS: PNX8550: Move code one directory level up. 2010-08-05 13:25:56 +01:00
oprofile MIPS: Oprofile: Fixup of loongson2_exit() 2010-07-05 17:17:31 +01:00
pci MIPS: MSP: Fix MSP71xx bpci interrupt handler return value 2011-03-14 21:07:25 +01:00
pmc-sierra MIPS: Select R4K timer lib for all MSP platforms 2011-03-14 21:07:25 +01:00
pnx833x MIPS: Fix gen_nand probe structures contents 2010-08-12 12:22:49 +01:00
pnx8550 MIPS: PNX8550: Sort out machine halt, restart and powerdown functions. 2010-10-04 18:33:57 +01:00
power MIPS: Loongson: Change the Email address of Wu Zhangjin 2010-02-27 12:53:12 +01:00
powertv tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
rb532 MIPS: Add missing #inclusions of <linux/irq.h> 2010-10-07 14:08:54 +01:00
sgi-ip22 MIPS: IP22, IP28: Migrate to new platform makefile style. 2010-08-05 13:25:49 +01:00
sgi-ip27 MIPS: IP27: Migrate to new Platform file 2010-08-05 13:25:47 +01:00
sgi-ip32 MIPS: IP32: Migrate to new platform makefile style. 2010-08-05 13:25:50 +01:00
sibyte MIPS: Sibyte: Use vzalloc in sbbus profiler 2011-01-18 19:30:21 +01:00
sni MIPS: Add missing #inclusions of <linux/irq.h> 2010-10-07 14:08:54 +01:00
txx9 MIPS: Use printf extension %pR for struct resource 2011-01-18 19:30:21 +01:00
vr41xx MIPS: Add missing #inclusions of <linux/irq.h> 2010-10-07 14:08:54 +01:00
wrppmc MIPS: WRPPMC: Migrate to new platform makefile style. 2010-08-05 13:25:51 +01:00
Kbuild MIPS: Repair Kbuild make clean breakage. 2010-10-19 18:32:39 +01:00
Kbuild.platforms MIPS: Add initial support for the Atheros AR71XX/AR724X/AR931X SoCs 2011-01-18 19:30:24 +01:00
Kconfig MIPS, Perf-events: Work with irq_work 2011-03-14 21:07:26 +01:00
Kconfig.debug kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
Makefile MIPS: Octeon: Apply CN63XXP1 errata workarounds. 2010-10-29 19:08:43 +01:00