[PATCH 0/4] genirq/nvme: add IRQF_RESCUE_THREAD for avoiding IRQ flood

Ming Lei
2019-08-27T08:54:06Z

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 <longli@microsoft.com>
Cc: Ingo Molnar <mingo@redhat.com>,
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Keith Busch <keith.busch@intel.com>
Cc: Jens Axboe <axboe@fb.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Sagi Grimberg <sagi@grimberg.me>
Cc: John Garry <john.garry@huawei.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Hannes Reinecke <hare@suse.com>
Cc: linux-nvme@lists.infradead.org
Cc: linux-scsi@vger.kernel.org

--
2.20.1