diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-11-15 08:38:06 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-20 10:06:57 -0500 |
commit | ec405ea9fe5fdeb40824edba7082803b3e98f176 (patch) | |
tree | 62903c7d594e682d58aef61c84f9a16c1d327d95 /arch/arm | |
parent | e3fbb087650df130788d8e3ac29875ee56819249 (diff) |
ARM: include local timer irq stats only when local timers configured
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/include/asm/hardirq.h | 2 | ||||
-rw-r--r-- | arch/arm/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/arm/kernel/smp.c | 24 |
3 files changed, 16 insertions, 12 deletions
diff --git a/arch/arm/include/asm/hardirq.h b/arch/arm/include/asm/hardirq.h index 6d7485aff955..522fb23241ac 100644 --- a/arch/arm/include/asm/hardirq.h +++ b/arch/arm/include/asm/hardirq.h | |||
@@ -7,7 +7,9 @@ | |||
7 | 7 | ||
8 | typedef struct { | 8 | typedef struct { |
9 | unsigned int __softirq_pending; | 9 | unsigned int __softirq_pending; |
10 | #ifdef CONFIG_LOCAL_TIMERS | ||
10 | unsigned int local_timer_irqs; | 11 | unsigned int local_timer_irqs; |
12 | #endif | ||
11 | } ____cacheline_aligned irq_cpustat_t; | 13 | } ____cacheline_aligned irq_cpustat_t; |
12 | 14 | ||
13 | #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ | 15 | #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ |
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 36ad3be4692a..ea29721ba348 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
@@ -93,6 +93,8 @@ unlock: | |||
93 | #endif | 93 | #endif |
94 | #ifdef CONFIG_SMP | 94 | #ifdef CONFIG_SMP |
95 | show_ipi_list(p); | 95 | show_ipi_list(p); |
96 | #endif | ||
97 | #ifdef CONFIG_LOCAL_TIMERS | ||
96 | show_local_irqs(p); | 98 | show_local_irqs(p); |
97 | #endif | 99 | #endif |
98 | seq_printf(p, "Err: %10lu\n", irq_err_count); | 100 | seq_printf(p, "Err: %10lu\n", irq_err_count); |
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 3772cfc6953a..36d4b9140dcf 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -403,18 +403,6 @@ void show_ipi_list(struct seq_file *p) | |||
403 | seq_putc(p, '\n'); | 403 | seq_putc(p, '\n'); |
404 | } | 404 | } |
405 | 405 | ||
406 | void show_local_irqs(struct seq_file *p) | ||
407 | { | ||
408 | unsigned int cpu; | ||
409 | |||
410 | seq_printf(p, "LOC: "); | ||
411 | |||
412 | for_each_present_cpu(cpu) | ||
413 | seq_printf(p, "%10u ", irq_stat[cpu].local_timer_irqs); | ||
414 | |||
415 | seq_putc(p, '\n'); | ||
416 | } | ||
417 | |||
418 | /* | 406 | /* |
419 | * Timer (local or broadcast) support | 407 | * Timer (local or broadcast) support |
420 | */ | 408 | */ |
@@ -441,6 +429,18 @@ asmlinkage void __exception do_local_timer(struct pt_regs *regs) | |||
441 | 429 | ||
442 | set_irq_regs(old_regs); | 430 | set_irq_regs(old_regs); |
443 | } | 431 | } |
432 | |||
433 | void show_local_irqs(struct seq_file *p) | ||
434 | { | ||
435 | unsigned int cpu; | ||
436 | |||
437 | seq_printf(p, "LOC: "); | ||
438 | |||
439 | for_each_present_cpu(cpu) | ||
440 | seq_printf(p, "%10u ", irq_stat[cpu].local_timer_irqs); | ||
441 | |||
442 | seq_putc(p, '\n'); | ||
443 | } | ||
444 | #endif | 444 | #endif |
445 | 445 | ||
446 | #ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST | 446 | #ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST |