On Wed, Jul 05, 2017 at 09:36:31PM +0800, Fam Zheng wrote: > This is a new protocol driver that exclusively opens a host NVMe > controller through VFIO. It achieves better latency than linux-aio by > completely bypassing host kernel vfs/block layer. > > $rw-$bs-$iodepth linux-aio nvme:// > ---------------------------------------- > randread-4k-1 8269 8851 > randread-512k-1 584 610 > randwrite-4k-1 28601 34649 > randwrite-512k-1 1809 1975 > > The driver also integrates with the polling mechanism of iothread. > > This patch is co-authored by Paolo and me. > > Signed-off-by: Fam Zheng <f...@redhat.com>
I haven't much time to do a thorough review, but in the brief time so far the implementation looks fine to me. I am wondering, though, if an NVMe vfio driver can be done as its own program that qemu can link to. The SPDK driver comes to mind as such an example, but it may create undesirable dependencies.