[RFC PATCH 0/3] nvme-pci: dynamic interrupt moderation

Keith Busch kbusch at meta.com
Tue Oct 13 15:35:40 PDT 2026


From: Keith Busch <kbusch at kernel.org>

Just adding another nvme hybrid interrupt and polling mechanism to the
lists. There's some recent alternatives mentioned in the links below,
but I'm trying one last time to leverage the DIM framework. Performance
wise, this at least doesn't seem any worse than anything else proposed,
though I've only been able to test on mid-level hardware so far.

This one here as some irq prep patches that help some when transitioning
from irq to polling for MSI-x enabled NVMe completions. These should be
generally applicable, so isn't necessarily tied to how it gets used in
the last patch if someone else finds it useful too.

Links:

  [1] https://lore.kernel.org/linux-nvme/20261009050556.2817978-1-namjain@linux.microsoft.com/

  [2] https://lore.kernel.org/linux-nvme/20260818033846.53790-1-changfengnan@bytedance.com/

Keith Busch (3):
  genirq: Add disable_irq_nowait()
  PCI/MSI: Implement irq_mask_nowait() for MSI-X
  nvme-pci: hybrid irq+polling

 drivers/irqchip/irq-msi-lib.c |   1 +
 drivers/nvme/host/Kconfig     |   2 +
 drivers/nvme/host/pci.c       | 624 ++++++++++++++++++++++++++++++++--
 drivers/nvme/host/trace.c     |   1 +
 drivers/nvme/host/trace.h     |  26 ++
 drivers/pci/msi/irqdomain.c   |   6 +
 drivers/pci/msi/msi.h         |   8 +-
 include/linux/interrupt.h     |   1 +
 include/linux/irq.h           |   4 +
 kernel/irq/chip.c             |  31 ++
 kernel/irq/internals.h        |   1 +
 kernel/irq/manage.c           |  21 ++
 12 files changed, 698 insertions(+), 28 deletions(-)

-- 
2.52.0




More information about the Linux-nvme mailing list