[PATCH v4 00/24] nvme: support NVMe v1.3d, SGLs and multiple namespaces

Klaus Jensen posted 24 patches 4 years, 3 months ago
Test asan failed
Test checkpatch failed
Test FreeBSD failed
Test docker-mingw@fedora failed
Test docker-clang@ubuntu failed
Test docker-quick@centos7 failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20191219130921.309264-1-k.jensen@samsung.com
Maintainers: Kevin Wolf <kwolf@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Max Reitz <mreitz@redhat.com>, Fam Zheng <fam@euphon.net>, Keith Busch <keith.busch@intel.com>, "Michael S. Tsirkin" <mst@redhat.com>
There is a newer version of this series
block/nvme.c           |   18 +-
hw/block/Makefile.objs |    2 +-
hw/block/nvme-ns.c     |  158 ++++
hw/block/nvme-ns.h     |   62 ++
hw/block/nvme.c        | 1983 ++++++++++++++++++++++++++++++++--------
hw/block/nvme.h        |  191 +++-
hw/block/trace-events  |  203 ++--
include/block/nvme.h   |  143 ++-
include/hw/pci/pci.h   |    3 +-
9 files changed, 2231 insertions(+), 532 deletions(-)
create mode 100644 hw/block/nvme-ns.c
create mode 100644 hw/block/nvme-ns.h
[PATCH v4 00/24] nvme: support NVMe v1.3d, SGLs and multiple namespaces
Posted by Klaus Jensen 4 years, 3 months ago
Hi,

This is v4 of my nvme patches.

This is mostly changes related to Beatas review (thanks again). Some of
the comments led to some refactoring, so the changes trickled down
through the series. That is why the backport diff show a lot of changes.

I dropped 'nvme: allow completion queues in the cmb' from the series as
it is not well tested. And there are no real users for this right now.
p2p might use it, but the support can be added if/when needed.

I ran into some trace event names clashing with the nvme block driver,
so I have included a patch that changes all trace events to use the
`nvme_dev` prefix instead.

I split 'nvme: add support for the get log page command' up to move
adding of the temperature threshold feature to its own commit.

Happy holidays everyone!



git-backport-diff -S -n -r upstream/master.. -u for-upstream/nvme/master/v3

[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/24:[down]      'nvme: rename trace events to nvme_dev'
002/24:[----] [-C] 'nvme: remove superfluous breaks'
003/24:[0006] [FC] 'nvme: move device parameters to separate struct'
004/24:[down]      'nvme: add missing fields in the identify data structures'
005/24:[0006] [FC] 'nvme: populate the mandatory subnqn and ver fields'
006/24:[down]      'nvme: refactor nvme_addr_read'
007/24:[0012] [FC] 'nvme: add support for the abort command'
008/24:[0006] [FC] 'nvme: refactor device realization'
009/24:[down]      'nvme: add temperature threshold feature'
010/24:[0070] [FC] 'nvme: add support for the get log page command'
011/24:[0177] [FC] 'nvme: add support for the asynchronous event request command'
012/24:[0017] [FC] 'nvme: add missing mandatory features'
013/24:[down]      'nvme: additional tracing'
014/24:[down]      'nvme: make sure ncqr and nsqr is valid'
015/24:[down]      'nvme: bump supported specification to 1.3'
016/24:[0233] [FC] 'nvme: refactor prp mapping'
017/24:[0464] [FC] 'nvme: allow multiple aios per command'
018/24:[----] [--] 'pci: pass along the return value of dma_memory_rw'
019/24:[0058] [FC] 'nvme: handle dma errors'
020/24:[0315] [FC] 'nvme: add support for scatter gather lists'
021/24:[0140] [FC] 'nvme: support multiple namespaces'
022/24:[----] [--] 'nvme: bump controller pci device id'
023/24:[0110] [FC] 'nvme: remove redundant NvmeCmd pointer parameter'
024/24:[0004] [FC] 'nvme: make lba data size configurable'



Klaus Jensen (24):
  nvme: rename trace events to nvme_dev
  nvme: remove superfluous breaks
  nvme: move device parameters to separate struct
  nvme: add missing fields in the identify data structures
  nvme: populate the mandatory subnqn and ver fields
  nvme: refactor nvme_addr_read
  nvme: add support for the abort command
  nvme: refactor device realization
  nvme: add temperature threshold feature
  nvme: add support for the get log page command
  nvme: add support for the asynchronous event request command
  nvme: add missing mandatory features
  nvme: additional tracing
  nvme: make sure ncqr and nsqr is valid
  nvme: bump supported specification to 1.3
  nvme: refactor prp mapping
  nvme: allow multiple aios per command
  pci: pass along the return value of dma_memory_rw
  nvme: handle dma errors
  nvme: add support for scatter gather lists
  nvme: support multiple namespaces
  nvme: bump controller pci device id
  nvme: remove redundant NvmeCmd pointer parameter
  nvme: make lba data size configurable

 block/nvme.c           |   18 +-
 hw/block/Makefile.objs |    2 +-
 hw/block/nvme-ns.c     |  158 ++++
 hw/block/nvme-ns.h     |   62 ++
 hw/block/nvme.c        | 1983 ++++++++++++++++++++++++++++++++--------
 hw/block/nvme.h        |  191 +++-
 hw/block/trace-events  |  203 ++--
 include/block/nvme.h   |  143 ++-
 include/hw/pci/pci.h   |    3 +-
 9 files changed, 2231 insertions(+), 532 deletions(-)
 create mode 100644 hw/block/nvme-ns.c
 create mode 100644 hw/block/nvme-ns.h

-- 
2.24.1