linux/arch/x86
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.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Kyle McMartin <kyle@mcmartin.ca>
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
[ various fixes ]
Signed-off-by: Huang Ying <ying.huang@intel.com>
LKML-Reference: <1287036094.7768.291.camel@yhuang-dev>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2010-10-18 19:58:50 +02:00
..
boot x86, setup: Fix earlyprintk=serial,0x3f8,115200 2010-09-21 10:18:33 -07:00
configs defconfig reduction 2010-08-14 22:26:53 +02:00
crypto
ia32 x86-64, compat: Retruncate rax after ia32 syscall entry tracing 2010-09-14 16:08:47 -07:00
include/asm irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
kernel irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
kvm KVM: i8259: fix migration 2010-09-08 14:50:58 -03:00
lguest lguest: update comments to reflect LHCALL_LOAD_GDT_ENTRY. 2010-09-21 10:54:02 +09:30
lib Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-13 10:35:48 -07:00
math-emu
mm x86: Barf when vmalloc and kmemcheck faults happen in NMI 2010-10-14 20:43:36 +02:00
oprofile oprofile, x86: Simplify init/exit functions 2010-10-01 17:05:47 +02:00
pci
power x86, tsc, sched: Recompute cyc2ns_offset's during resume from sleep states 2010-08-20 14:59:02 +02:00
tools
vdso Merge branches 'x86-cleanups-for-linus', 'x86-vmware-for-linus', 'x86-mtrr-for-linus', 'x86-apic-for-linus', 'x86-fpu-for-linus' and 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:22:59 -07:00
video
xen xen: do not initialize PV timers on HVM if !xen_have_vector_callback 2010-10-05 13:39:23 +01:00
.gitignore
Kbuild
Kconfig irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
Kconfig.cpu
Kconfig.debug
Makefile x86, build: Disable -fPIE when compiling with CONFIG_CC_STACKPROTECTOR=y 2010-09-13 15:53:16 -07:00
Makefile_32.cpu