[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