diff options
author | Mike Galbraith <efault@gmx.de> | 2009-02-09 01:38:50 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-02-09 07:03:38 -0500 |
commit | d278c48435625cb6b7edcf6a547620768b175709 (patch) | |
tree | 692d7e14aaafec9e924525373f03474cf10c7989 | |
parent | 23a185ca8abbeef64b6ffc33059b1d630e43ec10 (diff) |
perf_counters: account NMI interrupts
I noticed that kerneltop interrupts were accounted as NMI, but not their
perf counter origin.
Account NMI performance counter interrupts.
Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/perf_counter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-rw-r--r-- | arch/x86/kernel/cpu/perf_counter.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/perf_counter.c b/arch/x86/kernel/cpu/perf_counter.c index 8bb213323fe8..9901e46998d1 100644 --- a/arch/x86/kernel/cpu/perf_counter.c +++ b/arch/x86/kernel/cpu/perf_counter.c | |||
@@ -495,6 +495,7 @@ static void __smp_perf_counter_interrupt(struct pt_regs *regs, int nmi) | |||
495 | goto out; | 495 | goto out; |
496 | 496 | ||
497 | again: | 497 | again: |
498 | inc_irq_stat(apic_perf_irqs); | ||
498 | ack = status; | 499 | ack = status; |
499 | for_each_bit(bit, (unsigned long *)&status, X86_PMC_IDX_MAX) { | 500 | for_each_bit(bit, (unsigned long *)&status, X86_PMC_IDX_MAX) { |
500 | struct perf_counter *counter = cpuc->counters[bit]; | 501 | struct perf_counter *counter = cpuc->counters[bit]; |
@@ -570,7 +571,6 @@ void perf_counter_unthrottle(void) | |||
570 | void smp_perf_counter_interrupt(struct pt_regs *regs) | 571 | void smp_perf_counter_interrupt(struct pt_regs *regs) |
571 | { | 572 | { |
572 | irq_enter(); | 573 | irq_enter(); |
573 | inc_irq_stat(apic_perf_irqs); | ||
574 | apic_write(APIC_LVTPC, LOCAL_PERF_VECTOR); | 574 | apic_write(APIC_LVTPC, LOCAL_PERF_VECTOR); |
575 | __smp_perf_counter_interrupt(regs, 0); | 575 | __smp_perf_counter_interrupt(regs, 0); |
576 | 576 | ||