176 lines
4.6 KiB
Text
176 lines
4.6 KiB
Text
nvme-compare(1)
|
|
===============
|
|
|
|
NAME
|
|
----
|
|
nvme-compare - Send an NVMe Compare command, provide results
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'nvme-compare' <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 | -C]
|
|
[--force]
|
|
[--output-format=<fmt> | -o <fmt>] [--verbose | -v]
|
|
[--timeout=<timeout>]
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
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.
|
|
|
|
OPTIONS
|
|
-------
|
|
-s <slba>::
|
|
--start-block=<slba>::
|
|
64-bit address of the first block to access.
|
|
|
|
-c <nlb>::
|
|
--block-count=<nlb>::
|
|
Number of blocks to be accessed (zero-based).
|
|
|
|
-z <size>::
|
|
--data-size=<size>::
|
|
Size of data to be compared in bytes.
|
|
|
|
-y <metasize>::
|
|
--metadata-size=<metasize>::
|
|
Size of metadata to be transferred in bytes.
|
|
|
|
-r <reftag>::
|
|
--ref-tag=<reftag>::
|
|
Reference Tag for Protection Information
|
|
|
|
-d <data-file>::
|
|
--data=<data-file>::
|
|
Data file.
|
|
|
|
-M <meta>::
|
|
--metadata=<meta>::
|
|
Metadata file.
|
|
|
|
-p <prinfo>::
|
|
--prinfo=<prinfo>::
|
|
Protection Information and check field.
|
|
+
|
|
[]
|
|
|=================
|
|
|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
|
|
|=================
|
|
|
|
-m <appmask>::
|
|
--app-tag-mask=<appmask>::
|
|
App Tag Mask for Protection Information
|
|
|
|
-a <apptag>::
|
|
--app-tag=<apptag>::
|
|
App Tag for Protection Information
|
|
|
|
-l::
|
|
--limited-retry::
|
|
Number of limited attempts to media.
|
|
|
|
-f::
|
|
--force-unit-access::
|
|
FUA option to guarantee that data is stored to media.
|
|
|
|
-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.
|
|
|
|
--timeout=<timeout>::
|
|
Override default timeout value. In milliseconds.
|
|
|
|
EXAMPLES
|
|
--------
|
|
No examples yet.
|
|
|
|
NVME
|
|
----
|
|
Part of the nvme-user suite
|