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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.