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>
This commit is contained in:
parent
4a88abd7b4
commit
b54992fe1b
@ -22,6 +22,14 @@ typedef struct {
|
|||||||
#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++
|
#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++
|
||||||
#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member)
|
#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member)
|
||||||
|
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
|
u64 smp_irq_stat_cpu(unsigned int cpu);
|
||||||
|
#else
|
||||||
|
#define smp_irq_stat_cpu(cpu) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define arch_irq_stat_cpu smp_irq_stat_cpu
|
||||||
|
|
||||||
#if NR_IRQS > 512
|
#if NR_IRQS > 512
|
||||||
#define HARDIRQ_BITS 10
|
#define HARDIRQ_BITS 10
|
||||||
#elif NR_IRQS > 256
|
#elif NR_IRQS > 256
|
||||||
|
@ -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
|
* Timer (local or broadcast) support
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user