summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/irqinit_32.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2009-04-06 11:45:03 +0200
committerIngo Molnar <mingo@elte.hu>2009-04-07 10:48:56 +0200
commitb6276f353bf490add62dcf7db0ebd75baa3e1a37 (patch)
tree9720a848fca77555bef9658c56445815f6f2a29d /arch/x86/kernel/irqinit_32.c
parent671dec5daf3b3c43c5777be282f00120a44cf37f (diff)
downloadkernel-crypto-b6276f353bf490add62dcf7db0ebd75baa3e1a37.tar.gz
kernel-crypto-b6276f353bf490add62dcf7db0ebd75baa3e1a37.tar.xz
kernel-crypto-b6276f353bf490add62dcf7db0ebd75baa3e1a37.zip
perf_counter: x86: self-IPI for pending work
Implement set_perf_counter_pending() with a self-IPI so that it will run ASAP in a usable context. For now use a second IRQ vector, because the primary vector pokes the apic in funny ways that seem to confuse things. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> LKML-Reference: <20090406094517.724626696@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/irqinit_32.c')
-rw-r--r--arch/x86/kernel/irqinit_32.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/irqinit_32.c b/arch/x86/kernel/irqinit_32.c
index 925d87cfc55..3190a6b961e 100644
--- a/arch/x86/kernel/irqinit_32.c
+++ b/arch/x86/kernel/irqinit_32.c
@@ -166,6 +166,7 @@ static void __init apic_intr_init(void)
alloc_intr_gate(ERROR_APIC_VECTOR, error_interrupt);
# ifdef CONFIG_PERF_COUNTERS
alloc_intr_gate(LOCAL_PERF_VECTOR, perf_counter_interrupt);
+ alloc_intr_gate(LOCAL_PENDING_VECTOR, perf_pending_interrupt);
# endif
# ifdef CONFIG_X86_MCE_P4THERMAL