android_kernel_xiaomi_sm8350/arch/mips/include/asm
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
..
dec MIPS: Make various locks static. 2010-02-27 12:53:30 +01:00
emma MIPS: EMMA2RH: Replace EMMA2RH_SW_IRQ_INTxx with EMMA2RH_SW_IRQ(n) 2010-08-05 13:26:04 +01:00
fw
ip32
lasat
mach-ar7 MIPS: AR7: Fix loops per jiffies on TNETD7200 devices 2010-12-16 18:10:56 +00:00
mach-ath79 MIPS: ath79: add common WMAC device for AR913X based boards 2011-01-18 19:30:28 +01:00
mach-au1x00 MIPS: au1000_eth: Get ethernet address from platform_data 2010-08-05 13:26:09 +01:00
mach-bcm47xx MIPS: BCM47xx: Use sscanf for parsing mac address 2010-12-16 18:10:59 +00:00
mach-bcm63xx mtd: add Broadcom BCM63xx image tag partition parser 2010-10-25 00:13:05 +01:00
mach-cavium-octeon MIPS: Octeon: Enable Read Inhibit / eXecute Inhibit on Octeon II. 2010-10-29 19:08:38 +01:00
mach-cobalt
mach-db1x00
mach-dec
mach-emma2rh
mach-generic dma-mapping: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-08-11 08:59:21 -07:00
mach-ip22
mach-ip27 MIPS: Convert DMA to use dma-mapping-common.h 2010-10-29 19:08:31 +01:00
mach-ip28
mach-ip32 MIPS: Convert DMA to use dma-mapping-common.h 2010-10-29 19:08:31 +01:00
mach-jazz MIPS: Convert DMA to use dma-mapping-common.h 2010-10-29 19:08:31 +01:00
mach-jz4740 MMC: Add support for the controller on JZ4740 SoCs. 2010-08-05 13:26:18 +01:00
mach-lasat
mach-loongson MIPS: Add missing #inclusions of <linux/irq.h> 2010-10-07 14:08:54 +01:00
mach-malta
mach-mipssim
mach-pb1x00 MIPS: Remove dead CONFIG_MTD_PB1550_BOOT, CONFIG_MTD_PB1550_USER 2010-08-05 13:26:00 +01:00
mach-pnx833x
mach-pnx8550
mach-powertv tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
mach-rc32434
mach-rm
mach-sibyte MIPS: Sibyte: Apply M3 workaround only on affected chip types and versions. 2010-04-12 17:26:19 +01:00
mach-tx39xx
mach-tx49xx MIPS: TX49xx: Rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-10-04 18:33:58 +01:00
mach-vr41xx
mach-wrppmc
mach-yosemite
mips-boards MIPS: GIC: Remove dependencies from Malta files. 2010-10-04 18:33:56 +01:00
octeon MIPS: Octeon: Add register definitions for EHCI / OHCI USB glue logic. 2010-10-29 19:08:43 +01:00
pci mips: remove dma64_addr_t usage 2010-10-27 18:03:17 -07:00
pmc-sierra/msp71xx MIPS: MSP71xx: Remove dead CONFIG_MTD_PMC_MSP_RAMROOT 2010-08-05 13:26:01 +01:00
sgi
sibyte
sn MIPS: IP27: Don't include <linux/topology.h> into <asm/sn/agent.h>. 2010-08-05 13:25:38 +01:00
txx9 MIPS: TXx9: Remove forced serial console setting 2010-02-27 12:53:22 +01:00
vr41xx
xtalk
abi.h MIPS: Move signal trampolines off of the stack. 2010-04-12 17:26:15 +01:00
addrspace.h
amon.h
arch_hweight.h MIPS: Create and use asm/arch_hweight.h 2010-08-05 13:26:02 +01:00
asm-offsets.h
asm.h
asmmacro-32.h
asmmacro-64.h
asmmacro.h
atomic.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
auxvec.h
barrier.h MIPS: Optimize spinlocks. 2010-02-27 12:53:42 +01:00
bcache.h
bitops.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
bitsperlong.h
bootinfo.h MIPS: Add a platform hook for swiotlb setup. 2010-10-29 19:08:32 +01:00
branch.h
break.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
bug.h
bugs.h
byteorder.h
cache.h MIPS: Implement __read_mostly 2011-01-18 19:30:28 +01:00
cachectl.h
cacheflush.h
cacheops.h MIPS: RM7000: Add support for tertiary cache 2010-08-05 13:26:06 +01:00
cevt-r4k.h
checksum.h
clock.h
cmp.h
cmpxchg.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
compat-signal.h
compat.h compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-14 16:08:45 -07:00
compiler.h
cop2.h MIPS: Don't place cu2 notifiers in __cpuinitdata 2010-10-04 18:34:00 +01:00
cpu-features.h MIPS: Update comment for cpu_has_clo_clz 2010-08-05 13:26:01 +01:00
cpu-info.h MIPS: Probe for presence of KScratch registers. 2011-01-18 19:30:22 +01:00
cpu.h MIPS: Fix regression on BCM4710 processor detection 2010-12-16 18:10:58 +00:00
cputime.h
current.h MIPS: Use generic current.h 2010-02-27 12:53:27 +01:00
debug.h
delay.h
device.h MIPS: Convert DMA to use dma-mapping-common.h 2010-10-29 19:08:31 +01:00
div64.h
dma-mapping.h MIPS: Convert DMA to use dma-mapping-common.h 2010-10-29 19:08:31 +01:00
dma.h MIPS: Allow MAX_DMA32_PFN to be overridden. 2010-10-29 19:08:28 +01:00
ds1287.h
dsp.h
edac.h
elf.h MIPS: Don't clobber personality high bits. 2010-12-16 18:10:54 +00:00
emergency-restart.h
errno.h
fb.h
fcntl.h MIPS: 32-bit: Fix build failure in asm/fcntl.h 2010-10-18 16:59:04 +01:00
fixmap.h
floppy.h
fpregdef.h
fpu_emulator.h MIPS: Fix build breakage if CONFIG_DEBUG_FS is enabled. 2010-04-12 17:26:08 +01:00
fpu.h
ftrace.h
futex.h
gcmpregs.h
gic.h MIPS: GIC: Remove dependencies from Malta files. 2010-10-04 18:33:56 +01:00
gpio.h
gt64120.h
hardirq.h
hazards.h MIPS: Alchemy: remove SOC_AU1X00 in favor of MIPS_ALCHEMY 2010-08-05 13:26:06 +01:00
highmem.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
hugetlb.h
hw_irq.h
i8253.h i8253: Convert i8253_lock to raw_spinlock 2010-03-02 10:28:38 +01:00
i8259.h MIPS: i8259: Convert IRQ controller lock to raw spinlock. 2010-02-27 12:53:38 +01:00
ide.h
inst.h MIPS: Add LDX and LWX instructions to uasm. 2011-01-18 19:30:23 +01:00
io.h MIPS: LD/SD o32 macro GAS fix update 2010-12-16 18:11:01 +00:00
ioctl.h
ioctls.h TTY: Add tty ioctl to figure device node of the system console. 2010-12-16 16:18:28 -08:00
ipcbuf.h
irq_cpu.h
irq_gt641xx.h
irq_regs.h
irq.h of/mips: Add device tree support to MIPS 2010-10-21 11:10:10 -06:00
irqflags.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
isadep.h
jazz.h
jazzdma.h
jump_label.h MIPS: jump label: Add MIPS support. 2011-01-18 19:30:24 +01:00
Kbuild
kdebug.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
kexec.h
kgdb.h kgdb,mips: Individual register get/set for mips 2010-08-05 09:22:21 -05:00
kmap_types.h
kprobes.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
kspd.h
linkage.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h MIPS: define local_xchg from xchg_local to atomic_long_xchg 2010-10-29 19:08:47 +01:00
m48t37.h
mc146818-time.h set_rtc_mmss: show warning message only once 2011-01-13 08:03:07 -08:00
mc146818rtc.h
mips_machine.h MIPS: Add generic support for multiple machines within a single kernel 2011-01-18 19:30:21 +01:00
mips_mt.h
mipsmtregs.h
mipsprom.h
mipsregs.h MIPS: Add BMIPS CP0 register definitions 2010-10-29 19:08:52 +01:00
mman.h thp: mm: define MADV_NOHUGEPAGE 2011-01-13 17:32:47 -08:00
mmu_context.h MIPS: Use C0_KScratch (if present) to hold PGD pointer. 2011-01-18 19:30:22 +01:00
mmu.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
mmzone.h
module.h
msc01_ic.h
msgbuf.h
mutex.h
nile4.h
paccess.h
page.h MIPS: Document why RELOC_HIDE is there. 2010-10-04 18:33:55 +01:00
param.h
parport.h MIPS: Use generic parport.h 2010-02-27 12:53:27 +01:00
pci.h MIPS: Octeon: Disallow MSI-X interrupt and fall back to MSI interrupts. 2010-08-05 13:26:27 +01:00
percpu.h
perf_event.h MIPS, Perf-events: Work with irq_work 2011-03-14 21:07:26 +01:00
pgalloc.h
pgtable-32.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
pgtable-64.h MIPS: Make TASK_SIZE reflect proper size for both 32 and 64 bit processes. 2010-10-29 19:08:53 +01:00
pgtable-bits.h MIPS: Implement Read Inhibit/eXecute Inhibit 2010-02-27 12:53:26 +01:00
pgtable.h Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-03-01 09:15:15 -08:00
pmon.h
poll.h
posix_types.h
prefetch.h
processor.h MIPS: Make TASK_SIZE reflect proper size for both 32 and 64 bit processes. 2010-10-29 19:08:53 +01:00
prom.h of/mips: Cleanup some include directives/files. 2010-10-21 11:10:11 -06:00
ptrace.h MIPS: kprobes: Define regs_return_value() 2010-08-05 13:26:28 +01:00
r4k-timer.h
r4kcache.h
reboot.h
reg.h
regdef.h
resource.h
rm9k-ocd.h
rtlx.h
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h
sections.h
segment.h
sembuf.h
serial.h MIPS: Use generic serial.h 2010-02-27 12:53:27 +01:00
setup.h
sgialib.h MIPS: ARC: Cleanup unused definitions from sgialib.h 2010-02-27 12:53:45 +01:00
sgiarcs.h
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h Define _addr_lsb in siginfo_t for mips 2010-10-09 11:42:37 -07:00
signal.h
sim.h
smp-ops.h
smp.h
smtc_ipi.h
smtc_proc.h
smtc.h
smvp.h
sni.h
socket.h
sockios.h
sparsemem.h
spinlock_types.h MIPS: Optimize spinlocks. 2010-02-27 12:53:42 +01:00
spinlock.h MIPS: Optimize spinlocks. 2010-02-27 12:53:42 +01:00
spram.h
stackframe.h MIPS: Loongson-2F: Use CONFIG_CPU_JUMP_WORKAROUNDS to control workarounds. 2010-04-30 20:52:58 +01:00
stacktrace.h
stat.h
statfs.h add f_flags to struct statfs(64) 2010-08-09 16:48:44 -04:00
string.h
suspend.h
swab.h
sysmips.h
system.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
termbits.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
termios.h
thread_info.h MIPS: IRQ: Add stackoverflow detection 2010-10-29 19:08:27 +01:00
time.h
timex.h
titan_dep.h
tlb.h
tlbdebug.h
tlbflush.h
topology.h
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h
uaccess.h MIPS: Make TASK_SIZE reflect proper size for both 32 and 64 bit processes. 2010-10-29 19:08:53 +01:00
uasm.h MIPS: Add LDX and LWX instructions to uasm. 2011-01-18 19:30:23 +01:00
ucontext.h MIPS: Use generic ucontext.h 2010-02-27 12:53:27 +01:00
unaligned.h
unistd.h MIPS: Hookup fanotify_init, fanotify_mark, and prlimit64 syscalls. 2010-10-04 18:33:59 +01:00
user.h
vdso.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
vga.h
vpe.h
war.h
watch.h
wbflush.h
xor.h