diff options
Diffstat (limited to 'Documentation/nvme-compare.1')
-rw-r--r-- | Documentation/nvme-compare.1 | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/Documentation/nvme-compare.1 b/Documentation/nvme-compare.1 new file mode 100644 index 0000000..f90e068 --- /dev/null +++ b/Documentation/nvme-compare.1 @@ -0,0 +1,228 @@ +'\" t +.\" Title: nvme-compare +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> +.\" Date: 01/30/2023 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-COMPARE" "1" "01/30/2023" "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-compare \- Send an NVMe Compare command, provide results +.SH "SYNOPSIS" +.sp +.nf +\fInvme\-compare\fR <device> [\-\-start\-block=<slba> | \-s <slba>] + [\-\-block\-count=<nlb> | \-c <nlb>] + [\-\-data\-size=<size> | \-z <size>] + [\-\-metadata\-size=<metasize> | \-y <metasize>] + [\-\-ref\-tag=<reftag> | \-r <reftag>] + [\-\-data=<data\-file> | \-d <data\-file>] + [\-\-metadata=<meta> | \-M <meta>] + [\-\-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<storage\-tag\-check> | \-C <storage\-tag\-check>] + [\-\-force] +.fi +.SH "DESCRIPTION" +.sp +The Compare command reads the logical blocks specified by the command from the medium and compares the data read to a comparison data buffer transferred as part of the command\&. If the data read from the controller and the comparison data buffer are equivalent with no miscompares, then the command completes successfully\&. If there is any miscompare, the command completes with an error of Compare Failure\&. If metadata is provided, then a comparison is also performed for the metadata\&. +.SH "OPTIONS" +.PP +\-s <slba>, \-\-start\-block=<slba> +.RS 4 +64\-bit address of the first block to access\&. +.RE +.PP +\-c <nlb>, \-\-block\-count=<nlb> +.RS 4 +Number of blocks to be accessed (zero\-based)\&. +.RE +.PP +\-z <size>, \-\-data\-size=<size> +.RS 4 +Size of data to be compared in bytes\&. +.RE +.PP +\-y <metasize>, \-\-metadata\-size=<metasize> +.RS 4 +Size of metadata to be transferred in bytes\&. +.RE +.PP +\-r <reftag>, \-\-ref\-tag=<reftag> +.RS 4 +Reference Tag for Protection Information +.RE +.PP +\-d <data\-file>, \-\-data=<data\-file> +.RS 4 +Data file\&. +.RE +.PP +\-M <meta>, \-\-metadata=<meta> +.RS 4 +Metadata file\&. +.RE +.PP +\-p <prinfo>, \-\-prinfo=<prinfo> +.RS 4 +Protection Information and check field\&. +.RE +.sp ++ +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +.sp +Bit +T}:T{ +.sp +Description +T} +T{ +.sp +3 +T}:T{ +.sp +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{ +.sp +2:0 +T}:T{ +.sp +PRCHK: Protection Information Check: +T} +T{ +.sp +2 +T}:T{ +.sp +Set to 1 enables checking the guard tag +T} +T{ +.sp +1 +T}:T{ +.sp +Set to 1 enables checking the application tag +T} +T{ +.sp +0 +T}:T{ +.sp +Set to 1 enables checking the reference tag +T} +.TE +.sp 1 +.PP +\-m <appmask>, \-\-app\-tag\-mask=<appmask> +.RS 4 +App Tag Mask for Protection Information +.RE +.PP +\-a <apptag>, \-\-app\-tag=<apptag> +.RS 4 +App Tag for Protection Information +.RE +.PP +\-l, \-\-limited\-retry +.RS 4 +Number of limited attempts to media\&. +.RE +.PP +\-f, \-\-force\-unit\-access +.RS 4 +FUA option to guarantee that data is stored to media\&. +.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 +\-\-storage\-tag=<storage\-tag>, \-g <storage\-tag> +.RS 4 +Variable Sized Expected Logical Block Storage Tag(ELBST)\&. +.RE +.PP +\-\-storage\-tag\-check=<storage\-tag\-check>, \-C <storage\-tag\-check> +.RS 4 +This bit specifies the Storage Tag field shall be checked 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 +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite |