summary refs log tree commit diff
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-11-15 14:46:46 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-12-20 15:08:01 +0000
commitb54992fe1b4bad7b7488d58b8696e4e8974fdab0 (patch)
tree42c87b7a7f04627c841467ca65cf4e90f87ce2e2 /arch/arm/kernel
parent4a88abd7b48e8ec8084b1252d0f5ebdab43c2508 (diff)
downloadlinux-b54992fe1b4bad7b7488d58b8696e4e8974fdab0.tar.gz
ARM: SMP: collect IPI and local timer IRQs for /proc/stat
The IPI and local timer interrupts weren't being properly accounted
for in /proc/stat.  Collect them from the irq_stat structure, and
return their sum.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/smp.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index fa0c5f6e1587..1de3e13a42a1 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -406,6 +406,21 @@ void show_ipi_list(struct seq_file *p, int prec)
 	}
 }
 
+u64 smp_irq_stat_cpu(unsigned int cpu)
+{
+	u64 sum = 0;
+	int i;
+
+	for (i = 0; i < NR_IPI; i++)
+		sum += __get_irq_stat(cpu, ipi_irqs[i]);
+
+#ifdef CONFIG_LOCAL_TIMERS
+	sum += __get_irq_stat(cpu, local_timer_irqs);
+#endif
+
+	return sum;
+}
+
 /*
  * Timer (local or broadcast) support
  */