v6: Fix the cleaning up around nvme_init() and write cache setup in nvme_file_open(). [Stefan] Add Stefan's rev-by to the doc patch. Rebase on to Paolo's coroutine series for q->free_req_queue:
Based-on: 20180115220822.10156-1-pbonz...@redhat.com ([PATCH 0/4] coroutine-lock: polymorphic CoQueue) 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 | 1199 ++++++++++++++++++++++++++++++++++++++++ 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, 2833 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