KVM Forum 2025

Shadow ioeventfd: Accelerating MMIO in vfio-user with Kernel-Assisted Dispatch
2025-09-05 , Room 1

Efficient handling of MMIO and doorbell updates is essential for achieving high performance in virtualized I/O. The proposed Linux ioregionfd interface reduces context switches and overhead by enabling direct, file descriptor–based dispatch of MMIO operations, bypassing the traditional need to exit to userspace—typically QEMU, via the KVM_RUN loop. In this talk, we present a different approach inspired by this idea, tentatively called shadow ioeventfd, implemented in the vfio-user protocol. Shadow ioeventfd introduces a shared memory region, separate from the guest-visible BAR, allowing guest writes to be handled entirely within the kernel using eventfd signaling. We discuss how we implemented this in libvfio-user with minimal changes to QEMU and the kernel, and how it integrates with SPDK-based NVMe emulation. We also share performance results demonstrating significant improvements in latency and CPU utilization, up to 200%, compared to traditional userspace emulation, which is especially important for Windows as they lack shadow doorbells.

I'm software engineer at Nutanix, mainly focusing on disk I/O virtualization.

Software engineer at Nutanix, and vfio-user maintainer.