summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRebecca Schultz Zavin <rebecca@android.com>2010-10-22 15:55:17 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:38:24 -0800
commit4a4b46bf86f8d24231b8a16e27ce87726ff678e0 (patch)
tree9418b7d5eca6b73bfa9c82faffdbb43662614007 /arch
parentb54d8ca91156167b8378a5c31569cc81d04cd6c3 (diff)
[ARM] fiq_debugger: Print local timer irqs count
Prints the number of local timer irqs on each cpu when the irqs command is executed. Change-Id: Ic70fa9f528d98996fabb2d0cc80e937c5b239c1a Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/common/fiq_debugger.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/common/fiq_debugger.c b/arch/arm/common/fiq_debugger.c
index 330053856c76..6b7ce432a31d 100644
--- a/arch/arm/common/fiq_debugger.c
+++ b/arch/arm/common/fiq_debugger.c
@@ -87,6 +87,7 @@ struct fiq_debugger_state {
#endif
unsigned int last_irqs[NR_IRQS];
+ unsigned int last_local_timer_irqs[NR_CPUS];
};
#ifdef CONFIG_FIQ_DEBUGGER_NO_SLEEP
@@ -323,6 +324,8 @@ static void dump_allregs(struct fiq_debugger_state *state, unsigned *regs)
static void dump_irqs(struct fiq_debugger_state *state)
{
int n;
+ unsigned int cpu;
+
debug_printf(state, "irqnr total since-last status name\n");
for (n = 0; n < NR_IRQS; n++) {
struct irqaction *act = irq_desc[n].action;
@@ -335,6 +338,16 @@ static void dump_irqs(struct fiq_debugger_state *state)
(act && act->name) ? act->name : "???");
state->last_irqs[n] = kstat_irqs(n);
}
+
+ for (cpu = 0; cpu < NR_CPUS; cpu++) {
+
+ debug_printf(state, "LOC %d: %10u %11u\n", cpu,
+ __IRQ_STAT(cpu, local_timer_irqs),
+ __IRQ_STAT(cpu, local_timer_irqs) -
+ state->last_local_timer_irqs[cpu]);
+ state->last_local_timer_irqs[cpu] =
+ __IRQ_STAT(cpu, local_timer_irqs);
+ }
}
struct stacktrace_state {