diff options
author | Anton Blanchard <anton@samba.org> | 2010-01-31 15:34:06 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-02-16 22:02:49 -0500 |
commit | 89713ed10815401a1bfe12e3a076b64048381b56 (patch) | |
tree | 2d9ce51782997e3ed265dbee7c72c3e7b0c776e3 /arch/powerpc/include/asm/hardirq.h | |
parent | fc380c0c8a17bc2bd2d9d7fb41d4a88c3e618db2 (diff) |
powerpc: Add timer, performance monitor and machine check counts to /proc/interrupts
With NO_HZ it is useful to know how often the decrementer is going off. The
patch below adds an entry for it and also adds it into the /proc/stat
summaries.
While here, I added performance monitoring and machine check exceptions.
I found it useful to keep an eye on the PMU exception rate
when using the perf tool. Since it's possible to take a completely
handled machine check on a System p box it also sounds like a good idea to
keep a machine check summary.
The event naming matches x86 to keep gratuitous differences to a minimum.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm/hardirq.h')
-rw-r--r-- | arch/powerpc/include/asm/hardirq.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/hardirq.h b/arch/powerpc/include/asm/hardirq.h index 9bf3467581b1..cd2d4be882aa 100644 --- a/arch/powerpc/include/asm/hardirq.h +++ b/arch/powerpc/include/asm/hardirq.h | |||
@@ -6,6 +6,9 @@ | |||
6 | 6 | ||
7 | typedef struct { | 7 | typedef struct { |
8 | unsigned int __softirq_pending; | 8 | unsigned int __softirq_pending; |
9 | unsigned int timer_irqs; | ||
10 | unsigned int pmu_irqs; | ||
11 | unsigned int mce_exceptions; | ||
9 | } ____cacheline_aligned irq_cpustat_t; | 12 | } ____cacheline_aligned irq_cpustat_t; |
10 | 13 | ||
11 | DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); | 14 | DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); |
@@ -19,4 +22,10 @@ static inline void ack_bad_irq(unsigned int irq) | |||
19 | printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq); | 22 | printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq); |
20 | } | 23 | } |
21 | 24 | ||
25 | extern u64 arch_irq_stat_cpu(unsigned int cpu); | ||
26 | #define arch_irq_stat_cpu arch_irq_stat_cpu | ||
27 | |||
28 | extern u64 arch_irq_stat(void); | ||
29 | #define arch_irq_stat arch_irq_stat | ||
30 | |||
22 | #endif /* _ASM_POWERPC_HARDIRQ_H */ | 31 | #endif /* _ASM_POWERPC_HARDIRQ_H */ |