diff options
author | Anton Blanchard <anton@samba.org> | 2010-01-31 15:34:36 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-02-16 22:02:49 -0500 |
commit | 17081102a6e0fe32cf47cdbdf8f2e9ab55273b08 (patch) | |
tree | 6bbe3f22d4414598cdfdb69510f0679b90c68175 /arch/powerpc/include | |
parent | 89713ed10815401a1bfe12e3a076b64048381b56 (diff) |
powerpc: Convert global "BAD" interrupt to per cpu spurious
I often get asked if BAD interrupts are really bad. On some boxes (eg
IBM machines running a hypervisor) there are valid cases where are
presented with an interrupt that is not for us. These cases are common
enough to show up as thousands of BAD interrupts a day.
Tone them down by calling them spurious. Since they can be a significant cause
of OS jitter, we may as well log them per cpu so we know where they are
occurring.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r-- | arch/powerpc/include/asm/hardirq.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/powerpc/include/asm/hardirq.h b/arch/powerpc/include/asm/hardirq.h index cd2d4be882aa..3147a2970125 100644 --- a/arch/powerpc/include/asm/hardirq.h +++ b/arch/powerpc/include/asm/hardirq.h | |||
@@ -9,6 +9,7 @@ typedef struct { | |||
9 | unsigned int timer_irqs; | 9 | unsigned int timer_irqs; |
10 | unsigned int pmu_irqs; | 10 | unsigned int pmu_irqs; |
11 | unsigned int mce_exceptions; | 11 | unsigned int mce_exceptions; |
12 | unsigned int spurious_irqs; | ||
12 | } ____cacheline_aligned irq_cpustat_t; | 13 | } ____cacheline_aligned irq_cpustat_t; |
13 | 14 | ||
14 | DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); | 15 | DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); |
@@ -25,7 +26,4 @@ static inline void ack_bad_irq(unsigned int irq) | |||
25 | extern u64 arch_irq_stat_cpu(unsigned int cpu); | 26 | extern u64 arch_irq_stat_cpu(unsigned int cpu); |
26 | #define arch_irq_stat_cpu arch_irq_stat_cpu | 27 | #define arch_irq_stat_cpu arch_irq_stat_cpu |
27 | 28 | ||
28 | extern u64 arch_irq_stat(void); | ||
29 | #define arch_irq_stat arch_irq_stat | ||
30 | |||
31 | #endif /* _ASM_POWERPC_HARDIRQ_H */ | 29 | #endif /* _ASM_POWERPC_HARDIRQ_H */ |