block: Add VFIO based NVMe driver
commitbdd6a90a9e5fe22201dce84aea60ac08197e2c63
authorFam Zheng <famz@redhat.com>
Tue, 16 Jan 2018 06:08:55 +0000 (16 14:08 +0800)
committerFam Zheng <famz@redhat.com>
Thu, 8 Feb 2018 01:22:03 +0000 (8 09:22 +0800)
tree51510269cdaf1b43fadba613215f41066f8825f1
parent418026ca43bc2626db092d7558258f9594366f28
block: Add VFIO based NVMe driver

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     10.5k         21.6k
    randread-512k-1   745           1591
    randwrite-4k-1    30.7k         37.0k
    randwrite-512k-1  1945          1980

    (unit: IOPS)

The driver also integrates with the polling mechanism of iothread.

This patch is co-authored by Paolo and me.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20180116060901.17413-4-famz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
MAINTAINERS
block/Makefile.objs
block/nvme.c [new file with mode: 0644]
block/trace-events