Shadow ioeventfd

Shadow ioeventfd is mechanism that reduces the cost of MMIO writes in vfio-user. In a nutshell, it eliminates the involvement of the VMM by allowing KVM to write the MMIO value in a piece of memory provided by the device emulation task and then notifying it by kicking the ioeventfd. The device emulation task can then find the value in a known location.

This mechanism is especially important for cases where the MMIO value is required by the device protocol, which is the case for NVMe.

This functionality requires patching the kernel (KVM) and QEMU: