qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] e8cc43: MAINTAINERS: update nvme entry


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] e8cc43: MAINTAINERS: update nvme entry
Date: Thu, 03 Sep 2020 04:30:28 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: e8cc43d5cc680d348fcc43c46fc2d5e603d0579e
      
https://github.com/qemu/qemu/commit/e8cc43d5cc680d348fcc43c46fc2d5e603d0579e
  Author: Keith Busch <kbusch@kernel.org>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: update nvme entry

The nvme emulated device development pace has increased recently.  Klaus
has offered to co-maintain, and since we have many new contributions
coming through, we're adding a repository to accumulate and test new
features.

Cc: Klaus Jensen <its@irrelevant.dk>
Acked-by: Klaus Jensen <k.jensen@samsung.com>
Acked-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>


  Commit: 7a85fb7faa43f9acc22ab507b6038116cf297fb4
      
https://github.com/qemu/qemu/commit/7a85fb7faa43f9acc22ab507b6038116cf297fb4
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: Update specification URL

At some point the URL changed, update it to avoid other
developers to search for it.

Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200630110429.19972-2-philmd@redhat.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>


  Commit: e989738f3ab3283039385e5771e459b3f2ccfbf1
      
https://github.com/qemu/qemu/commit/e989738f3ab3283039385e5771e459b3f2ccfbf1
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: Use QEMU_PACKED on hardware/packet structures

These structures either describe hardware registers, or
commands ('packets') to send to the hardware. To forbid
the compiler to optimize and change fields alignment,
mark the structures as packed.

Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200630110429.19972-3-philmd@redhat.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>


  Commit: af4a367d15d26c5594b4c38060083aa77a649a90
      
https://github.com/qemu/qemu/commit/af4a367d15d26c5594b4c38060083aa77a649a90
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: Fix pmrmsc register size

The Persistent Memory Region Controller Memory Space Control
register is 64-bit wide. See 'Figure 68: Register Definition'
of the 'NVM Express Base Specification Revision 1.4'.

Fixes: 6cf9413229 ("introduce PMR support from NVMe 1.4 spec")
Reported-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200630110429.19972-4-philmd@redhat.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>


  Commit: 74e18435c0eb59004e580f7103b3482fafab2c47
      
https://github.com/qemu/qemu/commit/74e18435c0eb59004e580f7103b3482fafab2c47
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: Align I/O BAR to 4 KiB

Simplify the NVMe emulated device by aligning the I/O BAR to 4 KiB.

Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200630110429.19972-5-philmd@redhat.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>


  Commit: c26f21737045a6c6ce7fbdea998868d9bcd9b489
      
https://github.com/qemu/qemu/commit/c26f21737045a6c6ce7fbdea998868d9bcd9b489
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M block/nvme.c
    M hw/block/nvme.c
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: bump spec data structures to v1.3

Add missing fields in the Identify Controller and Identify Namespace
data structures to bring them in line with NVMe v1.3.

This also adds data structures and defines for SGL support which
requires a couple of trivial changes to the nvme block driver as well.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Acked-by: Fam Zheng <fam@euphon.net>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Message-Id: <20200706061303.246057-2-its@irrelevant.dk>


  Commit: a70174ef2e6cd73b8e071ed7ce3cbef8ccb60089
      
https://github.com/qemu/qemu/commit/a70174ef2e6cd73b8e071ed7ce3cbef8ccb60089
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: fix missing endian conversion

Fix a missing cpu_to conversion by moving conversion to just before
returning instead.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-3-its@irrelevant.dk>


  Commit: a04425fb06738b696ba81a5494645965b1c5955b
      
https://github.com/qemu/qemu/commit/a04425fb06738b696ba81a5494645965b1c5955b
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/trace-events

  Log Message:
  -----------
  hw/block/nvme: additional tracing

Add various additional tracing and streamline nvme_identify_ns and
nvme_identify_nslist (they do not need to repeat the command, it is
already in the trace name).

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-4-its@irrelevant.dk>


  Commit: 1504ede69304ee8588483dd8c5e6434dd2c0faff
      
https://github.com/qemu/qemu/commit/1504ede69304ee8588483dd8c5e6434dd2c0faff
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: add support for the abort command

Required for compliance with NVMe revision 1.3d. See NVM Express 1.3d,
Section 5.1 ("Abort command").

The Abort command is a best effort command; for now, the device always
fails to abort the given command.

Signed-off-by: Klaus Jensen <klaus.jensen@cnexlabs.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Acked-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Message-Id: <20200706061303.246057-5-its@irrelevant.dk>


  Commit: 69ff06c49e9b0768bd68d887c2f29e8ff84dfaf3
      
https://github.com/qemu/qemu/commit/69ff06c49e9b0768bd68d887c2f29e8ff84dfaf3
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/nvme.h
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: add temperature threshold feature

It might seem weird to implement this feature for an emulated device,
but it is mandatory to support and the feature is useful for testing
asynchronous event request support, which will be added in a later
patch.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Acked-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Message-Id: <20200706061303.246057-6-its@irrelevant.dk>


  Commit: 42a42e4610ab9e4ca0bcc976f4b19f9f612a085e
      
https://github.com/qemu/qemu/commit/42a42e4610ab9e4ca0bcc976f4b19f9f612a085e
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: mark fw slot 1 as read-only

Mark firmware slot 1 as read-only and only support that slot.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-7-its@irrelevant.dk>


  Commit: 94a7897c41db0596c544af1bd27eedb833eae496
      
https://github.com/qemu/qemu/commit/94a7897c41db0596c544af1bd27eedb833eae496
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/nvme.h
    M hw/block/trace-events
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: add support for the get log page command

Add support for the Get Log Page command and basic implementations of
the mandatory Error Information, SMART / Health Information and Firmware
Slot Information log pages.

In violation of the specification, the SMART / Health Information log
page does not persist information over the lifetime of the controller
because the device has no place to store such persistent state.

Note that the LPA field in the Identify Controller data structure
intentionally has bit 0 cleared because there is no namespace specific
information in the SMART / Health information log page.

Required for compliance with NVMe revision 1.3d. See NVM Express 1.3d,
Section 5.14 ("Get Log Page command").

Signed-off-by: Klaus Jensen <klaus.jensen@cnexlabs.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Acked-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-8-its@irrelevant.dk>


  Commit: 5d5a53302b95c50197d007407d24e2da3397926a
      
https://github.com/qemu/qemu/commit/5d5a53302b95c50197d007407d24e2da3397926a
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/nvme.h
    M hw/block/trace-events
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: add support for the asynchronous event request command

Add support for the Asynchronous Event Request command. Required for
compliance with NVMe revision 1.3d. See NVM Express 1.3d, Section 5.2
("Asynchronous Event Request command").

Mostly imported from Keith's qemu-nvme tree. Modified with a max number
of queued events (controllable with the aer_max_queued device
parameter). The spec states that the controller *should* retain
events, so we do best effort here.

Signed-off-by: Klaus Jensen <klaus.jensen@cnexlabs.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Acked-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Message-Id: <20200706061303.246057-9-its@irrelevant.dk>


  Commit: 46ac29c38bb45184db71dfbfbf5a31b3c12dbe29
      
https://github.com/qemu/qemu/commit/46ac29c38bb45184db71dfbfbf5a31b3c12dbe29
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.h
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: move NvmeFeatureVal into hw/block/nvme.h

The NvmeFeatureVal does not belong with the spec-related data structures
in include/block/nvme.h that is shared between the block-level nvme
driver and the emulated nvme device.

Move it into the nvme device specific header file as it is the only
user of the structure. Also, remove the unused members.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-10-its@irrelevant.dk>


  Commit: d21d37f5ab8c439ea183d8b04c469823d3b0b5ef
      
https://github.com/qemu/qemu/commit/d21d37f5ab8c439ea183d8b04c469823d3b0b5ef
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: flush write cache when disabled

If the write cache is disabled with a Set Features command, flush it if
currently enabled.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-11-its@irrelevant.dk>


  Commit: 1302e48e499c526583b3182ad8c9b7e32010ac53
      
https://github.com/qemu/qemu/commit/1302e48e499c526583b3182ad8c9b7e32010ac53
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/trace-events
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: add remaining mandatory controller parameters

Add support for any remaining mandatory controller operating parameters
(features).

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-12-its@irrelevant.dk>


  Commit: 7c46310d298d8caa9dd0e4c0846331dd148a575c
      
https://github.com/qemu/qemu/commit/7c46310d298d8caa9dd0e4c0846331dd148a575c
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/trace-events
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: support the get/set features select and save fields

Since the device does not have any persistent state storage, no
features are "saveable" and setting the Save (SV) field in any Set
Features command will result in a Feature Identifier Not Saveable status
code.

Similarly, if the Select (SEL) field is set to request saved values, the
devices will (as it should) return the default values instead.

Since this also introduces "Supported Capabilities", the nsid field is
now also checked for validity wrt. the feature being get/set'ed.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-13-its@irrelevant.dk>


  Commit: 9932551154ff38b87e73c0ab209a1b75f702e84d
      
https://github.com/qemu/qemu/commit/9932551154ff38b87e73c0ab209a1b75f702e84d
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: make sure ncqr and nsqr is valid

0xffff is not an allowed value for NCQR and NSQR in Set Features on
Number of Queues.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Acked-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Message-Id: <20200706061303.246057-14-its@irrelevant.dk>


  Commit: 464eaa7292ab8b8fc3f09780649f89009ac2c535
      
https://github.com/qemu/qemu/commit/464eaa7292ab8b8fc3f09780649f89009ac2c535
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/trace-events

  Log Message:
  -----------
  hw/block/nvme: support identify namespace descriptor list

Since we are not providing the NGUID or EUI64 fields, we must support
the Namespace UUID. We do not have any way of storing a persistent
unique identifier, so conjure up a UUID that is just the namespace id.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-15-its@irrelevant.dk>


  Commit: 38a58e7ce38cf73f25e5242f5f1abcfcbd250a6d
      
https://github.com/qemu/qemu/commit/38a58e7ce38cf73f25e5242f5f1abcfcbd250a6d
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: reject invalid nsid values in active namespace id list

Reject the nsid broadcast value (0xffffffff) and 0xfffffffe in the
Active Namespace ID list.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-16-its@irrelevant.dk>


  Commit: 9e7ecdca26c34ffc5bda3d1d49e90bbb6b4f4422
      
https://github.com/qemu/qemu/commit/9e7ecdca26c34ffc5bda3d1d49e90bbb6b4f4422
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: enforce valid queue creation sequence

Support returning Command Sequence Error if Set Features on Number of
Queues is called after queues have been created.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Message-Id: <20200706061303.246057-17-its@irrelevant.dk>


  Commit: ccbefdb51d55b6649cf30541a2d2542dc6f89fab
      
https://github.com/qemu/qemu/commit/ccbefdb51d55b6649cf30541a2d2542dc6f89fab
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: provide the mandatory subnqn field

The SUBNQN field is mandatory in NVM Express 1.3.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20200706061303.246057-18-its@irrelevant.dk>


  Commit: 3c40434e516d1541d3f356dbad8c695447a5a7ad
      
https://github.com/qemu/qemu/commit/3c40434e516d1541d3f356dbad8c695447a5a7ad
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: bump supported version to v1.3

Bump the supported NVM Express version to v1.3.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Message-Id: <20200706061303.246057-19-its@irrelevant.dk>


  Commit: d1322b46684ef38f78760acfd4861b396a9c0264
      
https://github.com/qemu/qemu/commit/d1322b46684ef38f78760acfd4861b396a9c0264
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: memset preallocated requests structures

This is preparatory to subsequent patches that change how QSGs/IOVs are
handled. It is important that the qsg and iov members of the NvmeRequest
are initially zeroed.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>


  Commit: a80b2ce68251cf5b11c450173128f29223045b9c
      
https://github.com/qemu/qemu/commit/a80b2ce68251cf5b11c450173128f29223045b9c
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/trace-events

  Log Message:
  -----------
  hw/block/nvme: add mapping helpers

Add nvme_map_addr, nvme_map_addr_cmb and nvme_addr_to_cmb helpers and
use them in nvme_map_prp.

This fixes a bug where in the case of a CMB transfer, the device would
map to the buffer with a wrong length.

Fixes: b2b2b67a00574 ("nvme: Add support for Read Data and Write Data in CMBs.")
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
Reviewed-by: Andrzej Jakowski <andrzej.jakowski@linux.intel.com>


  Commit: 904248a53f3506fc41d30c6ef63d3ee7692d76d5
      
https://github.com/qemu/qemu/commit/904248a53f3506fc41d30c6ef63d3ee7692d76d5
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: replace dma_acct with blk_acct equivalent

The QSG isn't always initialized, so accounting could be wrong. Issue a
call to blk_acct_start instead with the size taken from the QSG or IOV
depending on the kind of I/O.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>


  Commit: 13b4463d8b4f46ab69755d1dd74c6a0c957cce08
      
https://github.com/qemu/qemu/commit/13b4463d8b4f46ab69755d1dd74c6a0c957cce08
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: remove redundant has_sg member

Remove the has_sg member from NvmeRequest since it's redundant.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>


  Commit: f06a6aa9648c0567fda12b75358630b595834490
      
https://github.com/qemu/qemu/commit/f06a6aa9648c0567fda12b75358630b595834490
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: destroy request iov before reuse

Make sure the request iov is destroyed before reuse; fixing a memory
leak.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>


  Commit: 794ef1b5a7a6053f5dd1ea20c75c2c292d2a1f51
      
https://github.com/qemu/qemu/commit/794ef1b5a7a6053f5dd1ea20c75c2c292d2a1f51
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: refactor dma read/write

Refactor the nvme_dma_{read,write}_prp functions into a common function
taking a DMADirection parameter.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>


  Commit: 19012fb898d0a4b3e5999212d01923a5e45cb399
      
https://github.com/qemu/qemu/commit/19012fb898d0a4b3e5999212d01923a5e45cb399
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/trace-events

  Log Message:
  -----------
  hw/block/nvme: add tracing to nvme_map_prp

Add tracing to nvme_map_prp.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>


  Commit: 6d1257f973e2be5c98650147f6cc89a5a05699e3
      
https://github.com/qemu/qemu/commit/6d1257f973e2be5c98650147f6cc89a5a05699e3
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: add request mapping helper

Introduce the nvme_map helper to remove some noise in the main nvme_rw
function.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>


  Commit: 076c816f4e62824714427a9d193f31ccb693d404
      
https://github.com/qemu/qemu/commit/076c816f4e62824714427a9d193f31ccb693d404
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: verify validity of prp lists in the cmb

Before this patch the device already supported PRP lists in the CMB, but
it did not check for the validity of it nor announced the support in the
Identify Controller data structure LISTS field.

If some of the PRPs in a PRP list are in the CMB, then ALL entries must
be there. This patch makes sure that requirement is verified as well as
properly announcing support for PRP lists in the CMB.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>


  Commit: 36c100f530b52cc43ad214c48dcfe4c6752859b6
      
https://github.com/qemu/qemu/commit/36c100f530b52cc43ad214c48dcfe4c6752859b6
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: refactor request bounds checking

Hoist bounds checking into its own function and check for wrap-around.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>


  Commit: e137d20e7dfff00d0662b3d2d256e9c92f7a7f4a
      
https://github.com/qemu/qemu/commit/e137d20e7dfff00d0662b3d2d256e9c92f7a7f4a
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/nvme.h
    M hw/block/trace-events

  Log Message:
  -----------
  hw/block/nvme: add check for mdts

Add 'mdts' device parameter to control the Maximum Data Transfer Size of
the controller and check that it is respected.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>


  Commit: 69265150aa53f0e1dbc85809800df40ffc9e7d67
      
https://github.com/qemu/qemu/commit/69265150aa53f0e1dbc85809800df40ffc9e7d67
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M block/nvme.c
    M hw/block/nvme.c
    M include/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: be consistent about zeros vs zeroes

The NVM Express specification generally uses 'zeroes' and not 'zeros',
so let us align with it.

Cc: Fam Zheng <fam@euphon.net>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>


  Commit: 3143df3d568d45740473ef8d0cb73ae41eafad3f
      
https://github.com/qemu/qemu/commit/3143df3d568d45740473ef8d0cb73ae41eafad3f
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c
    M hw/block/nvme.h

  Log Message:
  -----------
  hw/block/nvme: add ns/cmd references in NvmeRequest

Instead of passing around the NvmeNamespace and the NvmeCmd, add them as
members in the NvmeRequest structure.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>


  Commit: c660ad250e04c598330f366a2b612ce60285d199
      
https://github.com/qemu/qemu/commit/c660ad250e04c598330f366a2b612ce60285d199
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: consolidate qsg/iov clearing

Always destroy the request qsg/iov at the end of request use.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>


  Commit: d424d36a496da064de866469a344b07b771fbc12
      
https://github.com/qemu/qemu/commit/d424d36a496da064de866469a344b07b771fbc12
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: use preallocated qsg/iov in nvme_dma_prp

Since clean up of the request qsg/iov is now always done post-use, there
is no need to use a stack-allocated qsg/iov in nvme_dma_prp.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Acked-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>


  Commit: 82386d4a0f19ff1e6a04e29f104da1d12269539e
      
https://github.com/qemu/qemu/commit/82386d4a0f19ff1e6a04e29f104da1d12269539e
  Author: Klaus Jensen <k.jensen@samsung.com>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  hw/block/nvme: remove explicit qsg/iov parameters

Since nvme_map_prp always operate on the request-scoped qsg/iovs, just
pass a single pointer to the NvmeRequest instead of two for each of the
qsg and iov.

Suggested-by: Minwoo Im <minwoo.im.dev@gmail.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Minwoo Im <minwoo.im.dev@gmail.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>


  Commit: e4d8b7c1a95fffcfa4bdab9aa7ffd1cf590cdcf5
      
https://github.com/qemu/qemu/commit/e4d8b7c1a95fffcfa4bdab9aa7ffd1cf590cdcf5
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-09-02 (Wed, 02 Sep 2020)

  Changed paths:
    M MAINTAINERS
    M block/nvme.c
    M hw/block/nvme.c
    M hw/block/nvme.h
    M hw/block/trace-events
    M include/block/nvme.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/nvme/tags/pull-nvme-20200902' into 
staging

qemu-nvme

# gpg: Signature made Wed 02 Sep 2020 15:39:10 BST
# gpg:                using RSA key DBC11D2D373B4A3755F502EC625156610A4F6CC0
# gpg: Good signature from "Keith Busch <kbusch@kernel.org>" [unknown]
# gpg:                 aka "Keith Busch <keith.busch@gmail.com>" [unknown]
# gpg:                 aka "Keith Busch <keith.busch@intel.com>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: DBC1 1D2D 373B 4A37 55F5  02EC 6251 5661 0A4F 6CC0

* remotes/nvme/tags/pull-nvme-20200902: (39 commits)
  hw/block/nvme: remove explicit qsg/iov parameters
  hw/block/nvme: use preallocated qsg/iov in nvme_dma_prp
  hw/block/nvme: consolidate qsg/iov clearing
  hw/block/nvme: add ns/cmd references in NvmeRequest
  hw/block/nvme: be consistent about zeros vs zeroes
  hw/block/nvme: add check for mdts
  hw/block/nvme: refactor request bounds checking
  hw/block/nvme: verify validity of prp lists in the cmb
  hw/block/nvme: add request mapping helper
  hw/block/nvme: add tracing to nvme_map_prp
  hw/block/nvme: refactor dma read/write
  hw/block/nvme: destroy request iov before reuse
  hw/block/nvme: remove redundant has_sg member
  hw/block/nvme: replace dma_acct with blk_acct equivalent
  hw/block/nvme: add mapping helpers
  hw/block/nvme: memset preallocated requests structures
  hw/block/nvme: bump supported version to v1.3
  hw/block/nvme: provide the mandatory subnqn field
  hw/block/nvme: enforce valid queue creation sequence
  hw/block/nvme: reject invalid nsid values in active namespace id list
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/ed215cec0fca...e4d8b7c1a95f



reply via email to

[Prev in Thread] Current Thread [Next in Thread]