v3: Rebase, small tweaks/fixes and add locks to provide basic thread safety (basic because it is not really tested).
v2: - Implement "split vfio addr space" appraoch. [Paolo] - Add back 'device reset' in nvme_close(). [Paolo] - Better variable namings. [Stefan] - "Reuse" macro definitions from NVMe emulation code. - Rebase onto current master which has polling by default and update performance results accordingly. - Update MAINTAINERS. - Specify namespace in URI. - The sporadical I/O error from v1 "disappeared" in this version. - Tests one: qemu-img bench, fio, bonnie++ and installation of ubuntu/fedora/rhel on QEMU emulated nvme and a Intel P3700 card. Fam Zheng (6): stubs: Add stubs for ram block API block: Add VFIO based NVMe driver block: Introduce bdrv_dma_map and bdrv_dma_unmap block/nvme: Implement .bdrv_dma_map and .bdrv_dma_unmap qemu-img: Map bench buffer block: Move NVMe spec definitions to a separate header MAINTAINERS | 6 + block/Makefile.objs | 1 + block/block-backend.c | 10 + block/io.c | 24 + block/nvme-vfio.c | 703 +++++++++++++++++++++++++ block/nvme-vfio.h | 30 ++ block/nvme.c | 1103 ++++++++++++++++++++++++++++++++++++++++ block/nvme.h | 700 +++++++++++++++++++++++++ block/trace-events | 32 ++ hw/block/nvme.h | 698 +------------------------ include/block/block.h | 2 + include/block/block_int.h | 4 + include/sysemu/block-backend.h | 3 + qemu-img.c | 9 +- stubs/Makefile.objs | 1 + stubs/ram-block.c | 16 + 16 files changed, 2644 insertions(+), 698 deletions(-) create mode 100644 block/nvme-vfio.c create mode 100644 block/nvme-vfio.h create mode 100644 block/nvme.c create mode 100644 block/nvme.h create mode 100644 stubs/ram-block.c -- 2.9.4