summaryrefslogtreecommitdiffstats
path: root/Documentation/nvme-write.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/nvme-write.txt')
-rw-r--r--Documentation/nvme-write.txt166
1 files changed, 166 insertions, 0 deletions
diff --git a/Documentation/nvme-write.txt b/Documentation/nvme-write.txt
new file mode 100644
index 0000000..af5340e
--- /dev/null
+++ b/Documentation/nvme-write.txt
@@ -0,0 +1,166 @@
+nvme-write(1)
+=============
+
+NAME
+----
+nvme-write - Send an NVMe write command, provide results
+
+SYNOPSIS
+--------
+[verse]
+'nvme-write' <device> [--start-block=<slba> | -s <slba>]
+ [--block-count=<nlb> | -c <nlb>]
+ [--data-size=<size> | -z <size>]
+ [--metadata-size=<size> | -y <size>]
+ [--ref-tag=<reftag> | -r <reftag>]
+ [--data=<data-file> | -d <data-file>]
+ [--metadata=<metadata-file> | -M <metadata-file>]
+ [--prinfo=<prinfo> | -p <prinfo>]
+ [--app-tag-mask=<appmask> | -m <appmask>]
+ [--app-tag=<apptag> | -a <apptag>]
+ [--limited-retry | -l] [--force-unit-access | -f]
+ [--dir-type=<type> | -T <type>]
+ [--dir-spec=<spec> | -S <spec>] [--dsm=<dsm> | -D <dsm>]
+ [--show-command | -V] [--dry-run | -w] [--latency | -t]
+ [--storage-tag<storage-tag> | -g <storage-tag>]
+ [--storage-tag-check | -C] [--force]
+ [--output-format=<fmt> | -o <fmt>] [--verbose | -v]
+
+DESCRIPTION
+-----------
+The Write command writes the logical blocks specified by the command to
+the medium from the data data buffer provided. Will use stdin by default
+if you don't provide a file.
+
+OPTIONS
+-------
+-s <slba>::
+--start-block=<slba>::
+ Start block.
+
+-c::
+--block-count::
+ The number of blocks to transfer. This is a zeroes based value to
+ align with the kernel's use of this field. (ie. 0 means transfer
+ 1 block).
+
+-z <size>::
+--data-size=<size>::
+ Size of data, in bytes.
+
+-y <size>::
+--metadata-size=<size>::
+ Size of metadata in bytes.
+
+-d <data-file>::
+--data=<data-file>::
+ Data file. If none provided, contents are sent from STDIN.
+
+-M <metadata-file>::
+--metadata=<metadata-file>::
+ Metadata file, if necessary.
+
+-p <prinfo>::
+--prinfo=<prinfo>::
+ Protection Information field definition.
++
+[]
+|=================
+|Bit|Description
+|3|PRACT: Protection Information Action. When set to 1, PI is stripped/inserted
+on read/write when the block format's metadata size is 8. When set to 0,
+metadata is passes.
+|2:0|PRCHK: Protection Information Check:
+|2|Set to 1 enables checking the guard tag
+|1|Set to 1 enables checking the application tag
+|0|Set to 1 enables checking the reference tag
+|=================
+
+-r <reftag>::
+--ref-tag=<reftag>::
+ Optional reftag when used with protection information.
+
+-m <appmask>::
+--app-tag-mask=<appmask>::
+ Optional application tag mask when used with protection information.
+
+-a <apptag>::
+--app-tag=<apptag>::
+ Optional application tag when used with protection information.
+
+-l::
+--limited-retry::
+ Sets the limited retry flag.
+
+-f::
+--force-unit-access::
+ Set the force-unit access flag.
+
+-T <type>::
+--dir-type=<type>::
+ Optional directive type. The nvme-cli only enforces the value
+ be in the defined range for the directive type, though the NVMe
+ specification (1.3a) defines only one directive, 01h, for write
+ stream identifiers.
+
+-S <spec>::
+--dir-spec=<spec>::
+ Optional field for directive specifics. When used with
+ write streams, this value is defined to be the write stream
+ identifier. The nvme-cli will not validate the stream requested
+ is within the controller's capabilities.
+
+-D <dsm>::
+--dsm=<dsm>::
+ The optional data set management attributes for this command. The argument
+ for this is the least significant 8 bits of the DSM field in a write
+ command; the most significant 16 bits of the field come from the directive
+ specific field, if used. This may be used to set attributes for
+ the LBAs being written, like access frequency, type, latency,
+ among other things, as well as yet to be defined types. Please
+ consult the NVMe specification for detailed breakdown of how to
+ use this field.
+
+-V::
+--show-cmd::
+ Print out the command to be sent.
+
+-w::
+--dry-run::
+ Do not actually send the command. If want to use --dry-run option,
+ --show-cmd option _must_ be set. Otherwise --dry-run option will be
+ _ignored_.
+
+-t::
+--latency::
+ Print out the latency the IOCTL took (in us).
+
+-g <storage-tag>::
+--storage-tag=<storage-tag>::
+ Variable Sized Expected Logical Block Storage Tag(ELBST).
+
+-C::
+--storage-tag-check::
+ This flag enables Storage Tag field checking as part of end-to-end
+ data protection processing.
+
+--force::
+ Ignore namespace is currently busy and performed the operation
+ even though.
+
+-o <fmt>::
+--output-format=<fmt>::
+ Set the reporting format to 'normal', 'json' or 'binary'. Only one
+ output format can be used at a time.
+
+-v::
+--verbose::
+ Increase the information detail in the output.
+
+EXAMPLES
+--------
+No examples yet.
+
+NVME
+----
+Part of the nvme-user suite