[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 19/56] hw/block/nvme: Document zoned parameters in usage text
From: |
Klaus Jensen |
Subject: |
[PULL 19/56] hw/block/nvme: Document zoned parameters in usage text |
Date: |
Tue, 9 Feb 2021 08:30:24 +0100 |
From: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Added brief descriptions of the new device properties that are
now available to users to configure features of Zoned Namespace
Command Set in the emulator.
This patch is for documentation only, no functionality change.
Signed-off-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Niklas Cassel <Niklas.Cassel@wdc.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
hw/block/nvme.c | 43 ++++++++++++++++++++++++++++++++++++++-----
1 file changed, 38 insertions(+), 5 deletions(-)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 4bcc7660736b..f4f1487afeb1 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -9,7 +9,7 @@
*/
/**
- * Reference Specs: http://www.nvmexpress.org, 1.2, 1.1, 1.0e
+ * Reference Specs: http://www.nvmexpress.org, 1.4, 1.3, 1.2, 1.1, 1.0e
*
* https://nvmexpress.org/developers/nvme-specification/
*/
@@ -22,8 +22,9 @@
* [pmrdev=<mem_backend_file_id>,] \
* max_ioqpairs=<N[optional]>, \
* aerl=<N[optional]>, aer_max_queued=<N[optional]>, \
- * mdts=<N[optional]>
- * -device nvme-ns,drive=<drive_id>,bus=bus_name,nsid=<nsid>
+ * mdts=<N[optional]>,zoned.append_size_limit=<N[optional]> \
+ * -device nvme-ns,drive=<drive_id>,bus=<bus_name>,nsid=<nsid>,\
+ * zoned=<true|false[optional]>
*
* Note cmb_size_mb denotes size of CMB in MB. CMB is assumed to be at
* offset 0 in BAR2 and supports only WDS, RDS and SQS for now.
@@ -41,14 +42,46 @@
* ~~~~~~~~~~~~~~~~~~~~~~
* - `aerl`
* The Asynchronous Event Request Limit (AERL). Indicates the maximum number
- * of concurrently outstanding Asynchronous Event Request commands suppoert
+ * of concurrently outstanding Asynchronous Event Request commands support
* by the controller. This is a 0's based value.
*
* - `aer_max_queued`
* This is the maximum number of events that the device will enqueue for
- * completion when there are no oustanding AERs. When the maximum number of
+ * completion when there are no outstanding AERs. When the maximum number of
* enqueued events are reached, subsequent events will be dropped.
*
+ * - `zoned.append_size_limit`
+ * The maximum I/O size in bytes that is allowed in Zone Append command.
+ * The default is 128KiB. Since internally this this value is maintained as
+ * ZASL = log2(<maximum append size> / <page size>), some values assigned
+ * to this property may be rounded down and result in a lower maximum ZA
+ * data size being in effect. By setting this property to 0, users can make
+ * ZASL to be equal to MDTS. This property only affects zoned namespaces.
+ *
+ * Setting `zoned` to true selects Zoned Command Set at the namespace.
+ * In this case, the following namespace properties are available to configure
+ * zoned operation:
+ * zoned.zone_size=<zone size in bytes, default: 128MiB>
+ * The number may be followed by K, M, G as in kilo-, mega- or giga-.
+ *
+ * zoned.zone_capacity=<zone capacity in bytes, default: zone size>
+ * The value 0 (default) forces zone capacity to be the same as zone
+ * size. The value of this property may not exceed zone size.
+ *
+ * zoned.descr_ext_size=<zone descriptor extension size, default 0>
+ * This value needs to be specified in 64B units. If it is zero,
+ * namespace(s) will not support zone descriptor extensions.
+ *
+ * zoned.max_active=<Maximum Active Resources (zones), default: 0>
+ * The default value means there is no limit to the number of
+ * concurrently active zones.
+ *
+ * zoned.max_open=<Maximum Open Resources (zones), default: 0>
+ * The default value means there is no limit to the number of
+ * concurrently open zones.
+ *
+ * zoned.cross_zone_read=<enable RAZB, default: false>
+ * Setting this property to true enables Read Across Zone Boundaries.
*/
#include "qemu/osdep.h"
--
2.30.0
- [PULL 09/56] hw/block/nvme: Generate namespace UUIDs, (continued)
- [PULL 09/56] hw/block/nvme: Generate namespace UUIDs, Klaus Jensen, 2021/02/09
- [PULL 10/56] hw/block/nvme: Separate read and write handlers, Klaus Jensen, 2021/02/09
- [PULL 11/56] hw/block/nvme: Combine nvme_write_zeroes() and nvme_write(), Klaus Jensen, 2021/02/09
- [PULL 12/56] hw/block/nvme: Add Commands Supported and Effects log, Klaus Jensen, 2021/02/09
- [PULL 07/56] hw/block/nvme: fix bad clearing of CAP, Klaus Jensen, 2021/02/09
- [PULL 14/56] hw/block/nvme: Support allocated CNS command variants, Klaus Jensen, 2021/02/09
- [PULL 13/56] hw/block/nvme: Add support for Namespace Types, Klaus Jensen, 2021/02/09
- [PULL 15/56] nvme: Make ZNS-related definitions, Klaus Jensen, 2021/02/09
- [PULL 21/56] hw/block/nvme: conditionally enable DULBE for zoned namespaces, Klaus Jensen, 2021/02/09
- [PULL 18/56] hw/block/nvme: Support Zone Descriptor Extensions, Klaus Jensen, 2021/02/09
- [PULL 19/56] hw/block/nvme: Document zoned parameters in usage text,
Klaus Jensen <=
- [PULL 16/56] hw/block/nvme: Support Zoned Namespace Command Set, Klaus Jensen, 2021/02/09
- [PULL 24/56] hw/block/nvme: enum style fix, Klaus Jensen, 2021/02/09
- [PULL 39/56] hw/block/nvme: fix 64 bit register hi/lo split writes, Klaus Jensen, 2021/02/09
- [PULL 22/56] hw/block/nvme: fix shutdown/reset logic, Klaus Jensen, 2021/02/09
- [PULL 17/56] hw/block/nvme: Introduce max active and open zone limits, Klaus Jensen, 2021/02/09
- [PULL 20/56] hw/block/nvme: fix for non-msix machines, Klaus Jensen, 2021/02/09
- [PULL 23/56] hw/block/nvme: merge implicitly/explicitly opened processing masks, Klaus Jensen, 2021/02/09
- [PULL 28/56] hw/block/nvme: Correct error status for unaligned ZA, Klaus Jensen, 2021/02/09
- [PULL 27/56] hw/block/nvme: remove unnecessary check for append, Klaus Jensen, 2021/02/09
- [PULL 45/56] hw/block/nvme: disable PMR at boot up, Klaus Jensen, 2021/02/09