From: Klaus Jensen <its@irrelevant.dk>
To: qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
Beata Michalska <beata.michalska@linaro.org>,
Klaus Jensen <k.jensen@samsung.com>,
qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>,
Klaus Jensen <its@irrelevant.dk>, Keith Busch <kbusch@kernel.org>,
Javier Gonzalez <javier.gonz@samsung.com>,
Maxim Levitsky <mlevitsk@redhat.com>
Subject: [PATCH v7 00/48] nvme: support NVMe v1.3d, SGLs and multiple namespaces
Date: Wed, 15 Apr 2020 07:50:52 +0200 [thread overview]
Message-ID: <20200415055140.466900-1-its@irrelevant.dk> (raw)
From: Klaus Jensen <k.jensen@samsung.com>
Hi,
v7 is mostly just changes proposed by Maxim. Also, Gollu's patch for the
bit bucket sgl descriptor has been added (patch #43), but it is of a
pretty manageable size.
Changes since v6
~~~~~~~~~~~~~~~~
* 01/48 ("nvme: rename trace events to nvme_dev")
- indentation nitpicks (Maxim)
* 04/48 ("nvme: bump spec data structures to v1.3")
- added defines for temperature threshold and sensor selection (Maxim)
- added defines for the EUI64 and NGUID NIDT types (Maxim)
* 09/48 ("nvme: add max_ioqpairs device parameter")
- hoisted a bugfix out (Maxim)
* 11/48 ("nvme: refactor device realization")
- pulled the removal of the duplicated cmbsz/cmbloc struct members to
separate patch (Maxim)
- fixed an incomplete error message (Maxim)
* 12/48 ("nvme: add temperature threshold feature")
- use the defines added in 04/48 (Maxim)
- remove the addition of the unused 'temperature' NvmeCtrl member
* 13/48 ("nvme: add support for the get log page command")
- use the already defined NvmeErrorLog type (Maxim)
- add the 'temperature' NvmeCtrl member here instead (Maxim)
* 15/48 ("nvme: add missing mandatory features")
- fix off-by-one when validating dw11 for the interrupt vector config
feature (Maxim)
- some nitpicks (Maxim)
* 16/48 ("nvme: additional tracing")
- moved some traces (that was added in later patches) to here
* 19/48 ("nvme: support identify namespace descriptor list")
- refactored for the nth time; I think I'm finally kind of happy with
it
* 20/48 ("nvme: enforce valid queue creation sequence")
- added a comment (Maxim)
* 24/48 ("nvme: add mapping helpers")
- fixed an off-by-one error that would cause valid read/writes to the
CMB to be rejected (Maxim)
- add a check on len so we don't add 0 sized elements to the iovec
(Maxim)
* 26/48 ("nvme: remove redundant has_sg member")
- pulled the s/dma_acct/block_acct change to a separate patch (Maxim)
* 36/48 ("nvme: allow multiple aios per command")
- renamed nvme_req_register_aio to nvme_req_add_aio and added some
comments (Maxim)
- killed the prinfo patch
- pulled a bunch of refactoring stuff into other patches to make this
one easier to read (Maxim)
* 42/48 ("nvme: add support for scatter gather lists")
- pulled the nvme_addr_read hardening into its own patch (Maxim)
- refactored the logic around allowed sgl descriptor types (Maxim)
- additional comments (Maxim)
* 45/48 ("nvme: support multiple namespaces")
- fix an inconsistent return value
- fix an edge error case where all namespaces are allocated (Maxim)
git-backport-diff against rebased v6
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Key:
[----] : 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/48:[0006] [FC] 'nvme: rename trace events to nvme_dev'
002/48:[----] [--] 'nvme: remove superfluous breaks'
003/48:[----] [--] 'nvme: move device parameters to separate struct'
004/48:[0017] [FC] 'nvme: bump spec data structures to v1.3'
005/48:[down] 'nvme: use constants in identify'
006/48:[----] [--] 'nvme: refactor nvme_addr_read'
007/48:[----] [--] 'nvme: add support for the abort command'
008/48:[down] 'nvme: fix pci doorbell size calculation'
009/48:[0002] [FC] 'nvme: add max_ioqpairs device parameter'
010/48:[down] 'nvme: remove redundant cmbloc/cmbsz members'
011/48:[0022] [FC] 'nvme: refactor device realization'
012/48:[0013] [FC] 'nvme: add temperature threshold feature'
013/48:[0007] [FC] 'nvme: add support for the get log page command'
014/48:[----] [-C] 'nvme: add support for the asynchronous event request command'
015/48:[0002] [FC] 'nvme: add missing mandatory features'
016/48:[0014] [FC] 'nvme: additional tracing'
017/48:[----] [--] 'nvme: make sure ncqr and nsqr is valid'
018/48:[----] [--] 'nvme: add log specific field to trace events'
019/48:[0029] [FC] 'nvme: support identify namespace descriptor list'
020/48:[0005] [FC] 'nvme: enforce valid queue creation sequence'
021/48:[----] [--] 'nvme: provide the mandatory subnqn field'
022/48:[----] [--] 'nvme: bump supported version to v1.3'
023/48:[----] [--] 'nvme: memset preallocated requests structures'
024/48:[0010] [FC] 'nvme: add mapping helpers'
025/48:[down] 'nvme: replace dma_acct with blk_acct equivalent'
026/48:[0007] [FC] 'nvme: remove redundant has_sg member'
027/48:[0011] [FC] 'nvme: refactor dma read/write'
028/48:[0004] [FC] 'nvme: pass request along for tracing'
029/48:[----] [--] 'nvme: add request mapping helper'
030/48:[----] [--] 'nvme: verify validity of prp lists in the cmb'
031/48:[----] [-C] 'nvme: refactor request bounds checking'
032/48:[----] [--] 'nvme: add check for mdts'
033/48:[down] 'nvme: be consistent about zeros vs zeroes'
034/48:[down] 'nvme: refactor NvmeRequest'
035/48:[down] 'nvme: remove NvmeCmd parameter'
036/48:[0218] [FC] 'nvme: allow multiple aios per command'
037/48:[down] 'nvme: add nvme_check_rw helper'
038/48:[----] [--] 'nvme: use preallocated qsg/iov in nvme_dma_prp'
039/48:[----] [--] 'pci: pass along the return value of dma_memory_rw'
040/48:[----] [-C] 'nvme: handle dma errors'
041/48:[down] 'nvme: harden cmb access'
042/48:[0102] [FC] 'nvme: add support for scatter gather lists'
043/48:[down] 'nvme: add support for sgl bit bucket descriptor'
044/48:[----] [-C] 'nvme: refactor identify active namespace id list'
045/48:[0036] [FC] 'nvme: support multiple namespaces'
046/48:[----] [--] 'pci: allocate pci id for nvme'
047/48:[----] [--] 'nvme: change controller pci id'
048/48:[----] [-C] 'nvme: make lba data size configurable'
Gollu Appalanaidu (1):
nvme: add support for sgl bit bucket descriptor
Klaus Jensen (47):
nvme: rename trace events to nvme_dev
nvme: remove superfluous breaks
nvme: move device parameters to separate struct
nvme: bump spec data structures to v1.3
nvme: use constants in identify
nvme: refactor nvme_addr_read
nvme: add support for the abort command
nvme: fix pci doorbell size calculation
nvme: add max_ioqpairs device parameter
nvme: remove redundant cmbloc/cmbsz members
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: add log specific field to trace events
nvme: support identify namespace descriptor list
nvme: enforce valid queue creation sequence
nvme: provide the mandatory subnqn field
nvme: bump supported version to v1.3
nvme: memset preallocated requests structures
nvme: add mapping helpers
nvme: replace dma_acct with blk_acct equivalent
nvme: remove redundant has_sg member
nvme: refactor dma read/write
nvme: pass request along for tracing
nvme: add request mapping helper
nvme: verify validity of prp lists in the cmb
nvme: refactor request bounds checking
nvme: add check for mdts
nvme: be consistent about zeros vs zeroes
nvme: refactor NvmeRequest
nvme: remove NvmeCmd parameter
nvme: allow multiple aios per command
nvme: add nvme_check_rw helper
nvme: use preallocated qsg/iov in nvme_dma_prp
pci: pass along the return value of dma_memory_rw
nvme: handle dma errors
nvme: harden cmb access
nvme: add support for scatter gather lists
nvme: refactor identify active namespace id list
nvme: support multiple namespaces
pci: allocate pci id for nvme
nvme: change controller pci id
nvme: make lba data size configurable
MAINTAINERS | 1 +
block/nvme.c | 22 +-
docs/specs/nvme.txt | 25 +
docs/specs/pci-ids.txt | 1 +
hw/block/Makefile.objs | 2 +-
hw/block/nvme-ns.c | 162 +++
hw/block/nvme-ns.h | 62 ++
hw/block/nvme.c | 2139 ++++++++++++++++++++++++++++++++--------
hw/block/nvme.h | 177 +++-
hw/block/trace-events | 206 ++--
hw/core/machine.c | 1 +
include/block/nvme.h | 190 +++-
include/hw/pci/pci.h | 4 +-
13 files changed, 2413 insertions(+), 579 deletions(-)
create mode 100644 docs/specs/nvme.txt
create mode 100644 hw/block/nvme-ns.c
create mode 100644 hw/block/nvme-ns.h
--
2.26.0
next reply other threads:[~2020-04-15 5:53 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-15 5:50 Klaus Jensen [this message]
2020-04-15 5:50 ` [PATCH v7 01/48] nvme: rename trace events to nvme_dev Klaus Jensen
2020-04-15 5:50 ` [PATCH v7 02/48] nvme: remove superfluous breaks Klaus Jensen
2020-04-15 6:57 ` Philippe Mathieu-Daudé
2020-04-15 5:50 ` [PATCH v7 03/48] nvme: move device parameters to separate struct Klaus Jensen
2020-04-15 6:58 ` Philippe Mathieu-Daudé
2020-04-15 5:50 ` [PATCH v7 04/48] nvme: bump spec data structures to v1.3 Klaus Jensen
2020-04-15 5:50 ` [PATCH v7 05/48] nvme: use constants in identify Klaus Jensen
2020-04-15 7:01 ` Philippe Mathieu-Daudé
2020-04-15 5:50 ` [PATCH v7 06/48] nvme: refactor nvme_addr_read Klaus Jensen
2020-04-15 7:03 ` Philippe Mathieu-Daudé
2020-04-15 7:46 ` Klaus Birkelund Jensen
2020-04-15 5:50 ` [PATCH v7 07/48] nvme: add support for the abort command Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 08/48] nvme: fix pci doorbell size calculation Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 09/48] nvme: add max_ioqpairs device parameter Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 10/48] nvme: remove redundant cmbloc/cmbsz members Klaus Jensen
2020-04-15 7:10 ` Philippe Mathieu-Daudé
2020-04-15 7:19 ` Klaus Birkelund Jensen
2020-04-15 7:48 ` Philippe Mathieu-Daudé
2020-04-15 5:51 ` [PATCH v7 11/48] nvme: refactor device realization Klaus Jensen
2020-04-15 7:14 ` Philippe Mathieu-Daudé
2020-04-15 7:25 ` Klaus Birkelund Jensen
2020-04-15 7:55 ` Philippe Mathieu-Daudé
2020-04-15 8:18 ` Klaus Birkelund Jensen
2020-04-15 5:51 ` [PATCH v7 12/48] nvme: add temperature threshold feature Klaus Jensen
2020-04-15 7:19 ` Philippe Mathieu-Daudé
2020-04-15 7:24 ` Klaus Birkelund Jensen
2020-04-15 7:28 ` Klaus Birkelund Jensen
2020-04-15 7:45 ` Philippe Mathieu-Daudé
2020-04-15 5:51 ` [PATCH v7 13/48] nvme: add support for the get log page command Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 14/48] nvme: add support for the asynchronous event request command Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 15/48] nvme: add missing mandatory features Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 16/48] nvme: additional tracing Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 17/48] nvme: make sure ncqr and nsqr is valid Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 18/48] nvme: add log specific field to trace events Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 19/48] nvme: support identify namespace descriptor list Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 20/48] nvme: enforce valid queue creation sequence Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 21/48] nvme: provide the mandatory subnqn field Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 22/48] nvme: bump supported version to v1.3 Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 23/48] nvme: memset preallocated requests structures Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 24/48] nvme: add mapping helpers Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 25/48] nvme: replace dma_acct with blk_acct equivalent Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 26/48] nvme: remove redundant has_sg member Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 27/48] nvme: refactor dma read/write Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 28/48] nvme: pass request along for tracing Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 29/48] nvme: add request mapping helper Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 30/48] nvme: verify validity of prp lists in the cmb Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 31/48] nvme: refactor request bounds checking Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 32/48] nvme: add check for mdts Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 33/48] nvme: be consistent about zeros vs zeroes Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 34/48] nvme: refactor NvmeRequest Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 35/48] nvme: remove NvmeCmd parameter Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 36/48] nvme: allow multiple aios per command Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 37/48] nvme: add nvme_check_rw helper Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 38/48] nvme: use preallocated qsg/iov in nvme_dma_prp Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 39/48] pci: pass along the return value of dma_memory_rw Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 40/48] nvme: handle dma errors Klaus Jensen
2020-04-15 7:26 ` Philippe Mathieu-Daudé
2020-04-15 5:51 ` [PATCH v7 41/48] nvme: harden cmb access Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 42/48] nvme: add support for scatter gather lists Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 43/48] nvme: add support for sgl bit bucket descriptor Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 44/48] nvme: refactor identify active namespace id list Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 45/48] nvme: support multiple namespaces Klaus Jensen
2020-04-15 7:38 ` Philippe Mathieu-Daudé
2020-04-15 8:02 ` Klaus Birkelund Jensen
2020-04-15 5:51 ` [PATCH v7 46/48] pci: allocate pci id for nvme Klaus Jensen
2020-04-21 9:19 ` Gerd Hoffmann
2020-04-15 5:51 ` [PATCH v7 47/48] nvme: change controller pci id Klaus Jensen
2020-04-15 5:51 ` [PATCH v7 48/48] nvme: make lba data size configurable Klaus Jensen
2020-04-15 7:40 ` Philippe Mathieu-Daudé
2020-04-15 7:17 ` [PATCH v7 00/48] nvme: support NVMe v1.3d, SGLs and multiple namespaces no-reply
2020-04-15 8:02 ` no-reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200415055140.466900-1-its@irrelevant.dk \
--to=its@irrelevant.dk \
--cc=beata.michalska@linaro.org \
--cc=javier.gonz@samsung.com \
--cc=k.jensen@samsung.com \
--cc=kbusch@kernel.org \
--cc=kwolf@redhat.com \
--cc=mlevitsk@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).