[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 0/9] block: Add VFIO based driver for NVMe device
From: |
Fam Zheng |
Subject: |
[Qemu-devel] [PATCH v5 0/9] block: Add VFIO based driver for NVMe device |
Date: |
Fri, 12 Jan 2018 16:55:46 +0800 |
v5: Add Stefan's rev-bys.
Add Paolo's sob line.
Address Stefan's, Alex's and Eric's comments, including:
- Add PCI Bar MMIO offset/size parameter to VFIO utility API. [Alex]
- Fix various lock and memory leakings. [Stefan]
- Improve documentation. [Stefan]
- Add one missing "Since 2.12" in QAPI schema. [Eric]
- Fix locking of BDRVNVMeState->inflight. [Stefan]
- Add one missing endianness conversion for cmd.nsid. [Stefan]
- Use bdrv_get_aio_context() instead of qemu_get_current_aio_context().
- When init, issue "Set Features" command to enable/disable volatile write
cache according to "flags & BDRV_O_NOCACHE".
v4: - Rebase, address Stefan's comments.
- Add QAPI and doc patches.
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 (9):
stubs: Add stubs for ram block API
util: Introduce vfio helpers
block: Add VFIO based NVMe driver
block: Introduce buf register API
block/nvme: Implement .bdrv_(un)register_buf
qemu-img: Map bench buffer
block: Move NVMe constants to a separate header
docs: Add section for NVMe VFIO driver
qapi: Add NVMe driver options to the schema
MAINTAINERS | 6 +
block/Makefile.objs | 1 +
block/block-backend.c | 10 +
block/io.c | 24 +
block/nvme.c | 1182 ++++++++++++++++++++++++++++++++++++++++
block/trace-events | 21 +
docs/qemu-block-drivers.texi | 37 ++
hw/block/nvme.h | 698 +-----------------------
include/block/block.h | 11 +-
include/block/block_int.h | 9 +
include/block/nvme.h | 700 ++++++++++++++++++++++++
include/qemu/vfio-helpers.h | 33 ++
include/sysemu/block-backend.h | 3 +
qapi/block-core.json | 17 +-
qemu-img.c | 9 +-
stubs/Makefile.objs | 1 +
stubs/ram-block.c | 16 +
util/Makefile.objs | 1 +
util/trace-events | 11 +
util/vfio-helpers.c | 726 ++++++++++++++++++++++++
20 files changed, 2816 insertions(+), 700 deletions(-)
create mode 100644 block/nvme.c
create mode 100644 include/block/nvme.h
create mode 100644 include/qemu/vfio-helpers.h
create mode 100644 stubs/ram-block.c
create mode 100644 util/vfio-helpers.c
--
2.14.3
- [Qemu-devel] [PATCH v5 0/9] block: Add VFIO based driver for NVMe device,
Fam Zheng <=
- [Qemu-devel] [PATCH v5 1/9] stubs: Add stubs for ram block API, Fam Zheng, 2018/01/12
- [Qemu-devel] [PATCH v5 2/9] util: Introduce vfio helpers, Fam Zheng, 2018/01/12
- [Qemu-devel] [PATCH v5 4/9] block: Introduce buf register API, Fam Zheng, 2018/01/12
- [Qemu-devel] [PATCH v5 3/9] block: Add VFIO based NVMe driver, Fam Zheng, 2018/01/12
- [Qemu-devel] [PATCH v5 5/9] block/nvme: Implement .bdrv_(un)register_buf, Fam Zheng, 2018/01/12
- [Qemu-devel] [PATCH v5 6/9] qemu-img: Map bench buffer, Fam Zheng, 2018/01/12
- [Qemu-devel] [PATCH v5 8/9] docs: Add section for NVMe VFIO driver, Fam Zheng, 2018/01/12