Hi Guys, The 1st patch implements one simple EWMA based mechanism for detecting IRQ flood.
The 2nd patch adds IRQF_RESCUE_THREAD, and interrupts will be handled in the created rescue thread in case that IRQ flood comes. The 3rd patch applies the flag of IRQF_RESCURE_THREAD for NVMe. The last patch uses irq's affinity in case of IRQF_RESCUE_THREAD. Please review & comment! Long, please test and see if your issue can be fixed. Ming Lei (4): softirq: implement IRQ flood detection mechanism genirq: add IRQF_RESCUE_THREAD nvme: pci: pass IRQF_RESCURE_THREAD to request_threaded_irq genirq: use irq's affinity for threaded irq with IRQF_RESCUE_THREAD drivers/base/cpu.c | 25 +++++++++++++++++++++ drivers/nvme/host/pci.c | 17 +++++++++++++-- include/linux/hardirq.h | 2 ++ include/linux/interrupt.h | 6 +++++ kernel/irq/handle.c | 6 ++++- kernel/irq/manage.c | 25 ++++++++++++++++++++- kernel/softirq.c | 46 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 123 insertions(+), 4 deletions(-) Cc: Long Li <lon...@microsoft.com> Cc: Ingo Molnar <mi...@redhat.com>, Cc: Peter Zijlstra <pet...@infradead.org> Cc: Keith Busch <keith.bu...@intel.com> Cc: Jens Axboe <ax...@fb.com> Cc: Christoph Hellwig <h...@lst.de> Cc: Sagi Grimberg <s...@grimberg.me> Cc: John Garry <john.ga...@huawei.com> Cc: Thomas Gleixner <t...@linutronix.de> Cc: Hannes Reinecke <h...@suse.com> Cc: linux-n...@lists.infradead.org Cc: linux-s...@vger.kernel.org -- 2.20.1