diff options
author | Rebecca Schultz Zavin <rebecca@android.com> | 2010-10-22 15:55:17 -0700 |
---|---|---|
committer | Erik Gilling <konkers@android.com> | 2011-03-30 11:24:32 -0700 |
commit | 0210691e808a6ba3479bd04ef15cfae6ea28c4d4 (patch) | |
tree | 55b83ab67a258cf8addca3e3428005ceade92c78 | |
parent | c6e2a6a2ce8181e894368bb201ba9b4a445d7396 (diff) | |
download | experimental-0210691e808a6ba3479bd04ef15cfae6ea28c4d4.tar.gz |
[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>
-rw-r--r-- | arch/arm/common/fiq_debugger.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/common/fiq_debugger.c b/arch/arm/common/fiq_debugger.c index 330053856c7..6b7ce432a31 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 { |