The SPDK NVMe initiator supports interrupt mode for transports that expose interrupt-capable queue pairs. This allows initiator applications to sleep when idle and wake on completion events instead of continuously polling, reducing CPU usage when the initiator is not under load.
The spdk_nvme_perf application enables interrupt mode with the -E option. Interrupt mode is supported for local PCIe devices and for NVMe-oF RDMA initiators.
Example: Using spdk_nvme_perf in interrupt mode against an NVMe-oF RDMA target
Applications using the NVMe library directly may enable interrupt mode through spdk_nvme_ctrlr_opts.enable_interrupts. When enabled, interrupt-capable queue pairs may expose file descriptors through spdk_nvme_qpair_get_fd().
spdk_nvme_perf -E can be used to verify interrupt-mode behavior for both PCIe and RDMA initiators.test/nvmf/host/interrupt.sh demonstrates expected initiator-side idle and busy transitions for NVMe-oF RDMA.