Accounting the unused irq in order to count it if irq flood.

Signed-off-by: Pingfan Liu <kernelf...@gmail.com>
Cc: Thomas Gleixner <t...@linutronix.de>
Cc: Jisheng Zhang <jisheng.zh...@synaptics.com>
Cc: "Peter Zijlstra (Intel)" <pet...@infradead.org>
Cc: Vlastimil Babka <vba...@suse.cz>
Cc: Andrew Morton <a...@linux-foundation.org>
Cc: "Guilherme G. Piccoli" <gpicc...@canonical.com>
Cc: Petr Mladek <pmla...@suse.com>
Cc: ke...@lists.infradead.org
To: linux-kernel@vger.kernel.org
---
 arch/x86/kernel/irq.c       | 1 +
 include/linux/kernel_stat.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index c5dd503..6f583a7 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -254,6 +254,7 @@ DEFINE_IDTENTRY_IRQ(common_interrupt)
                        pr_emerg_ratelimited("%s: %d.%u No irq handler for 
vector\n",
                                             __func__, smp_processor_id(),
                                             vector);
+                       __this_cpu_inc(kstat.unused_irqs_sum);
                } else {
                        __this_cpu_write(vector_irq[vector], VECTOR_UNUSED);
                }
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h
index 89f0745..c8d5cb8 100644
--- a/include/linux/kernel_stat.h
+++ b/include/linux/kernel_stat.h
@@ -37,6 +37,7 @@ struct kernel_cpustat {
 
 struct kernel_stat {
        unsigned long irqs_sum;
+       unsigned long unused_irqs_sum;
        unsigned int softirqs[NR_SOFTIRQS];
 };
 
-- 
2.7.5

Reply via email to