blob: 1f575464f9872c5e2d0488a95079aa6abf0a5510 [file] [log] [blame] [view]
# 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:
- kernel patches: https://github.com/tmakatos/linux/tree/shadow-ioeventfd
- QEMU patches: https://github.com/tmakatos/qemu/tree/shadow-ioeventfd