From: Klaus Jensen <k.jensen@samsung.com>
To: <qemu-block@nongnu.org>
Cc: Kevin Wolf <kwolf@redhat.com>,
Beata Michalska <beata.michalska@linaro.org>,
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>
Subject: [PATCH v5 00/26] nvme: support NVMe v1.3d, SGLs and multiple namespaces
Date: Tue, 4 Feb 2020 10:51:42 +0100 [thread overview]
Message-ID: <20200204095208.269131-1-k.jensen@samsung.com> (raw)
In-Reply-To: CGME20200204095215eucas1p1bb0d5a3c183f7531d8b0e5e081f1ae6b@eucas1p1.samsung.com
Hi,
Changes since v4
- Changed vendor and device id to use a Red Hat allocated one. For
backwards compatibility add the 'x-use-intel-id' nvme device
parameter. This is off by default but is added as a machine compat
property to be true for machine types <= 4.2.
- SGL mapping code has been refactored.
Comments specific to Beata's review:
- [PATCH v4 19/24] nvme: handle dma errors
I ended up not including any specific code for resetting the device
when dma transfers fail for too long. If running I/O and then
disabling bus master, the OS will (should) eventually reset the
device and reenable bus mastering (this is the behavior in Linux at
least). The device can maybe set CFS ("Controller Fail Status") in
the BAR, but I have not explored that for now.
- [PATCH v4 17/24] nvme: allow multiple aios per command
I forgot to give an answer for your comment on the correctness of:
if (unlikely((slba + nlb) > nsze)) {
`slba` *is* the "address" of the first logical block, but it is in
terms of logical blocks, so the condition should be correct. (and at
this point `nlb` is no longer a 0's based value)
Klaus Jensen (26):
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
nvme: use preallocated qsg/iov in nvme_dma_prp
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
pci: allocate pci id for nvme
nvme: change controller pci id
nvme: remove redundant NvmeCmd pointer parameter
nvme: make lba data size configurable
MAINTAINERS | 1 +
block/nvme.c | 18 +-
docs/specs/nvme.txt | 10 +
docs/specs/pci-ids.txt | 1 +
hw/block/Makefile.objs | 2 +-
hw/block/nvme-ns.c | 158 ++++
hw/block/nvme-ns.h | 62 ++
hw/block/nvme.c | 2012 +++++++++++++++++++++++++++++++---------
hw/block/nvme.h | 201 +++-
hw/block/trace-events | 204 ++--
hw/core/machine.c | 1 +
include/block/nvme.h | 143 ++-
include/hw/pci/pci.h | 4 +-
13 files changed, 2266 insertions(+), 551 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.25.0
next parent reply other threads:[~2020-02-04 10:04 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20200204095215eucas1p1bb0d5a3c183f7531d8b0e5e081f1ae6b@eucas1p1.samsung.com>
2020-02-04 9:51 ` Klaus Jensen [this message]
[not found] ` <CGME20200204095216eucas1p2cb2b4772c04b92c97b0690c8e565234c@eucas1p2.samsung.com>
2020-02-04 9:51 ` [PATCH v5 01/26] nvme: rename trace events to nvme_dev Klaus Jensen
2020-02-12 9:08 ` Maxim Levitsky
2020-02-12 13:08 ` Klaus Birkelund Jensen
2020-02-12 13:17 ` Maxim Levitsky
[not found] ` <CGME20200204095216eucas1p137a2adf666e82d490aefca96a269acd9@eucas1p1.samsung.com>
2020-02-04 9:51 ` [PATCH v5 02/26] nvme: remove superfluous breaks Klaus Jensen
2020-02-12 9:09 ` Maxim Levitsky
[not found] ` <CGME20200204095217eucas1p1f3e1d113d5eaad4327de0158d1e480cb@eucas1p1.samsung.com>
2020-02-04 9:51 ` [PATCH v5 03/26] nvme: move device parameters to separate struct Klaus Jensen
2020-02-12 9:12 ` Maxim Levitsky
[not found] ` <CGME20200204095218eucas1p25d4623d82b1b7db3e555f3b27ca19763@eucas1p2.samsung.com>
2020-02-04 9:51 ` [PATCH v5 04/26] nvme: add missing fields in the identify data structures Klaus Jensen
2020-02-12 9:15 ` Maxim Levitsky
[not found] ` <CGME20200204095218eucas1p2400645e2400b3d4450386a46e71b9e9a@eucas1p2.samsung.com>
2020-02-04 9:51 ` [PATCH v5 05/26] nvme: populate the mandatory subnqn and ver fields Klaus Jensen
2020-02-12 9:18 ` Maxim Levitsky
[not found] ` <CGME20200204095219eucas1p1a7d44c741e119939c60ff60b96c7652e@eucas1p1.samsung.com>
2020-02-04 9:51 ` [PATCH v5 06/26] nvme: refactor nvme_addr_read Klaus Jensen
2020-02-12 9:23 ` Maxim Levitsky
[not found] ` <CGME20200204095219eucas1p1a7e88f8f4090988b3dee34d4d4bcc239@eucas1p1.samsung.com>
2020-02-04 9:51 ` [PATCH v5 07/26] nvme: add support for the abort command Klaus Jensen
2020-02-12 9:25 ` Maxim Levitsky
[not found] ` <CGME20200204095220eucas1p186b0de598359750d49278e0226ae45fb@eucas1p1.samsung.com>
2020-02-04 9:51 ` [PATCH v5 08/26] nvme: refactor device realization Klaus Jensen
2020-02-12 9:27 ` Maxim Levitsky
2020-03-16 7:43 ` Klaus Birkelund Jensen
2020-03-25 10:21 ` Maxim Levitsky
[not found] ` <CGME20200204095221eucas1p1d5b1c9578d79e6bcc5714976bbe7dc11@eucas1p1.samsung.com>
2020-02-04 9:51 ` [PATCH v5 09/26] nvme: add temperature threshold feature Klaus Jensen
2020-02-12 9:31 ` Maxim Levitsky
2020-03-16 7:44 ` Klaus Birkelund Jensen
2020-03-25 10:21 ` Maxim Levitsky
[not found] ` <CGME20200204095221eucas1p216ca2452c4184eb06bff85cff3c6a82b@eucas1p2.samsung.com>
2020-02-04 9:51 ` [PATCH v5 10/26] nvme: add support for the get log page command Klaus Jensen
2020-02-12 9:35 ` Maxim Levitsky
2020-03-16 7:45 ` Klaus Birkelund Jensen
2020-03-25 10:22 ` Maxim Levitsky
2020-03-25 10:24 ` Maxim Levitsky
[not found] ` <CGME20200204095222eucas1p2a2351bfc0930b3939927e485f1417e29@eucas1p2.samsung.com>
2020-02-04 9:51 ` [PATCH v5 11/26] nvme: add support for the asynchronous event request command Klaus Jensen
2020-02-12 10:21 ` Maxim Levitsky
[not found] ` <CGME20200204095223eucas1p281b4ef7c8f4170d8a42da3b4aea9e166@eucas1p2.samsung.com>
2020-02-04 9:51 ` [PATCH v5 12/26] nvme: add missing mandatory features Klaus Jensen
2020-02-12 10:27 ` Maxim Levitsky
2020-03-16 7:47 ` Klaus Birkelund Jensen
2020-03-25 10:22 ` Maxim Levitsky
[not found] ` <CGME20200204095223eucas1p2b24d674e4b201c13a5fffc6853520d9b@eucas1p2.samsung.com>
2020-02-04 9:51 ` [PATCH v5 13/26] nvme: additional tracing Klaus Jensen
2020-02-12 10:28 ` Maxim Levitsky
[not found] ` <CGME20200204095224eucas1p10807239f5dc4aa809650c85186c426a8@eucas1p1.samsung.com>
2020-02-04 9:51 ` [PATCH v5 14/26] nvme: make sure ncqr and nsqr is valid Klaus Jensen
2020-02-12 10:30 ` Maxim Levitsky
2020-03-16 7:48 ` Klaus Birkelund Jensen
2020-03-25 10:25 ` Maxim Levitsky
[not found] ` <CGME20200204095225eucas1p1e44b4de86afdf936e3c7f61359d529ce@eucas1p1.samsung.com>
2020-02-04 9:51 ` [PATCH v5 15/26] nvme: bump supported specification to 1.3 Klaus Jensen
2020-02-12 10:35 ` Maxim Levitsky
2020-03-16 7:50 ` Klaus Birkelund Jensen
2020-03-25 10:22 ` Maxim Levitsky
[not found] ` <CGME20200204095225eucas1p226336a91fb5460dddae5caa85964279f@eucas1p2.samsung.com>
2020-02-04 9:51 ` [PATCH v5 16/26] nvme: refactor prp mapping Klaus Jensen
2020-02-12 11:44 ` Maxim Levitsky
2020-03-16 7:51 ` Klaus Birkelund Jensen
2020-03-25 10:23 ` Maxim Levitsky
[not found] ` <CGME20200204095226eucas1p2429f45a5e23fe6ed57dee293be5e1b44@eucas1p2.samsung.com>
2020-02-04 9:51 ` [PATCH v5 17/26] nvme: allow multiple aios per command Klaus Jensen
2020-02-12 11:48 ` Maxim Levitsky
2020-03-16 7:53 ` Klaus Birkelund Jensen
2020-03-25 10:24 ` Maxim Levitsky
[not found] ` <CGME20200204095227eucas1p2f23061d391e67f4d3bde8bab74d1e44b@eucas1p2.samsung.com>
2020-02-04 9:52 ` [PATCH v5 18/26] nvme: use preallocated qsg/iov in nvme_dma_prp Klaus Jensen
2020-02-12 11:49 ` Maxim Levitsky
[not found] ` <CGME20200204095227eucas1p2d86cd6abcb66327dc112d58c83664139@eucas1p2.samsung.com>
2020-02-04 9:52 ` [PATCH v5 19/26] pci: pass along the return value of dma_memory_rw Klaus Jensen
[not found] ` <CGME20200204095228eucas1p2878eb150a933bb196fe5ca10a0b76eaf@eucas1p2.samsung.com>
2020-02-04 9:52 ` [PATCH v5 20/26] nvme: handle dma errors Klaus Jensen
2020-02-12 11:52 ` Maxim Levitsky
2020-03-16 7:53 ` Klaus Birkelund Jensen
2020-03-25 10:23 ` Maxim Levitsky
[not found] ` <CGME20200204095229eucas1p2b290e3603d73c129a4f6149805273705@eucas1p2.samsung.com>
2020-02-04 9:52 ` [PATCH v5 21/26] nvme: add support for scatter gather lists Klaus Jensen
2020-02-12 12:07 ` Maxim Levitsky
2020-03-16 7:54 ` Klaus Birkelund Jensen
2020-03-25 10:24 ` Maxim Levitsky
[not found] ` <CGME20200204095230eucas1p27456c6c0ab3b688d2f891d0dff098821@eucas1p2.samsung.com>
2020-02-04 9:52 ` [PATCH v5 22/26] nvme: support multiple namespaces Klaus Jensen
2020-02-04 16:31 ` Keith Busch
2020-02-06 7:27 ` Klaus Birkelund Jensen
2020-02-12 12:34 ` Maxim Levitsky
2020-03-16 7:55 ` Klaus Birkelund Jensen
2020-03-25 10:24 ` Maxim Levitsky
[not found] ` <CGME20200204095230eucas1p23f3105c4cab4aaec77a3dd42b8158c10@eucas1p2.samsung.com>
2020-02-04 9:52 ` [PATCH v5 23/26] pci: allocate pci id for nvme Klaus Jensen
2020-02-12 12:36 ` Maxim Levitsky
[not found] ` <CGME20200204095231eucas1p21019b1d857fcda9d67950e7d01de6b6a@eucas1p2.samsung.com>
2020-02-04 9:52 ` [PATCH v5 24/26] nvme: change controller pci id Klaus Jensen
2020-02-04 16:35 ` Keith Busch
2020-02-06 7:28 ` Klaus Birkelund Jensen
2020-02-12 12:37 ` Maxim Levitsky
[not found] ` <CGME20200204095231eucas1p1f2b78a655b1a217fe4f7006f79e37f86@eucas1p1.samsung.com>
2020-02-04 9:52 ` [PATCH v5 25/26] nvme: remove redundant NvmeCmd pointer parameter Klaus Jensen
2020-02-12 12:37 ` Maxim Levitsky
[not found] ` <CGME20200204095232eucas1p2b3264104447a42882f10edb06608ece5@eucas1p2.samsung.com>
2020-02-04 9:52 ` [PATCH v5 26/26] nvme: make lba data size configurable Klaus Jensen
2020-02-04 16:43 ` Keith Busch
2020-02-06 7:24 ` Klaus Birkelund Jensen
2020-02-12 12:39 ` Maxim Levitsky
2020-02-04 10:34 ` [PATCH v5 00/26] nvme: support NVMe v1.3d, SGLs and multiple namespaces no-reply
2020-02-04 16:47 ` Keith Busch
2020-02-06 7:29 ` Klaus Birkelund Jensen
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=20200204095208.269131-1-k.jensen@samsung.com \
--to=k.jensen@samsung.com \
--cc=beata.michalska@linaro.org \
--cc=its@irrelevant.dk \
--cc=javier.gonz@samsung.com \
--cc=kbusch@kernel.org \
--cc=kwolf@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.