1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236
|
'\" t
.\" Title: nvme-write
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 11/04/2025
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
.TH "NVME\-WRITE" "1" "11/04/2025" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nvme-write \- Send an NVMe write command, provide results
.SH "SYNOPSIS"
.sp
.nf
\fInvme\-write\fR <device> [\-\-start\-block=<slba> | \-s <slba>]
[\-\-block\-count=<nlb> | \-c <nlb>]
[\-\-block\-size=<size> | \-b <size>]
[\-\-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]
[\-\-timeout=<timeout>]
.fi
.SH "DESCRIPTION"
.sp
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\(cqt provide a file\&.
.SH "OPTIONS"
.PP
\-s <slba>, \-\-start\-block=<slba>
.RS 4
Start block\&.
.RE
.PP
\-c, \-\-block\-count
.RS 4
The number of blocks to transfer\&. This is a zeroes based value to align with the kernel\(cqs use of this field\&. (ie\&. 0 means transfer 1 block)\&.
.RE
.PP
\-b <size>, \-\-block\-size=<size>
.RS 4
If specified, the logical block size in bytes, with metasize also describing the metadata size for an individual block\&. Discovered by identify namespace otherwise\&.
.RE
.PP
\-z <size>, \-\-data\-size=<size>
.RS 4
Size of data, in bytes\&.
.RE
.PP
\-y <size>, \-\-metadata\-size=<size>
.RS 4
Size of metadata in bytes\&.
.RE
.PP
\-d <data\-file>, \-\-data=<data\-file>
.RS 4
Data file\&. If none provided, contents are sent from STDIN\&.
.RE
.PP
\-M <metadata\-file>, \-\-metadata=<metadata\-file>
.RS 4
Metadata file, if necessary\&.
.RE
.PP
\-p <prinfo>, \-\-prinfo=<prinfo>
.RS 4
Protection Information field definition\&.
.TS
allbox tab(:);
lt lt
lt lt
lt lt
lt lt
lt lt
lt lt.
T{
Bit
T}:T{
Description
T}
T{
3
T}:T{
PRACT: Protection Information Action\&. When set to 1, PI is stripped/inserted on read/write when the block format\(cqs metadata size is 8\&. When set to 0, metadata is passes\&.
T}
T{
2:0
T}:T{
PRCHK: Protection Information Check:
T}
T{
2
T}:T{
Set to 1 enables checking the guard tag
T}
T{
1
T}:T{
Set to 1 enables checking the application tag
T}
T{
0
T}:T{
Set to 1 enables checking the reference tag
T}
.TE
.sp 1
.RE
.PP
\-r <reftag>, \-\-ref\-tag=<reftag>
.RS 4
Optional reftag when used with protection information\&.
.RE
.PP
\-m <appmask>, \-\-app\-tag\-mask=<appmask>
.RS 4
Optional application tag mask when used with protection information\&.
.RE
.PP
\-a <apptag>, \-\-app\-tag=<apptag>
.RS 4
Optional application tag when used with protection information\&.
.RE
.PP
\-l, \-\-limited\-retry
.RS 4
Sets the limited retry flag\&.
.RE
.PP
\-f, \-\-force\-unit\-access
.RS 4
Set the force\-unit access flag\&.
.RE
.PP
\-T <type>, \-\-dir\-type=<type>
.RS 4
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\&.
.RE
.PP
\-S <spec>, \-\-dir\-spec=<spec>
.RS 4
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\(cqs capabilities\&.
.RE
.PP
\-D <dsm>, \-\-dsm=<dsm>
.RS 4
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\&.
.RE
.PP
\-V, \-\-show\-cmd
.RS 4
Print out the command to be sent\&.
.RE
.PP
\-w, \-\-dry\-run
.RS 4
Do not actually send the command\&. If want to use \-\-dry\-run option, \-\-show\-cmd option
\fImust\fR
be set\&. Otherwise \-\-dry\-run option will be
\fIignored\fR\&.
.RE
.PP
\-t, \-\-latency
.RS 4
Print out the latency the IOCTL took (in us)\&.
.RE
.PP
\-g <storage\-tag>, \-\-storage\-tag=<storage\-tag>
.RS 4
Variable Sized Expected Logical Block Storage Tag(ELBST)\&.
.RE
.PP
\-C, \-\-storage\-tag\-check
.RS 4
This flag enables Storage Tag field checking as part of end\-to\-end data protection processing\&.
.RE
.PP
\-\-force
.RS 4
Ignore namespace is currently busy and performed the operation even though\&.
.RE
.PP
\-o <fmt>, \-\-output\-format=<fmt>
.RS 4
Set the reporting format to
\fInormal\fR,
\fIjson\fR
or
\fIbinary\fR\&. Only one output format can be used at a time\&.
.RE
.PP
\-v, \-\-verbose
.RS 4
Increase the information detail in the output\&.
.RE
.PP
\-\-timeout=<timeout>
.RS 4
Override default timeout value\&. In milliseconds\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.
.SH "NVME"
.sp
Part of the nvme\-user suite
|