Contributor
Jinhao Fan

NVMe Emulation Performance Optimization


Mentors
Klaus Jensen, Keith Busch
Organization
QEMU
Technologies
c
Topics
virtualization, NVMe
QEMU-NVMe is an important tool for developers to experiment with new features in the NVMe stack. However, its emulation performance has failed to catch up with the ever-increasing speed of modern storage devices. The goal of this project is to improve QEMU's NVMe emulation performance so that it becomes comparable to virtio-blk. We intend to implement the following optimizations: (1) Add Shadow Doorbell Buffer support to reduce doorbell writes. (2) Add Submission Queue Tail Doorbell register ioeventfd support. (3) Add iothread support to run emulation in a separate event loop. (4) Add Submission Queue Tail Doorbell register polling.