2025-02-16 11:09:01 +01:00
|
|
|
nvme-read(1)
|
|
|
|
============
|
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
|
|
|
nvme-read - Send an NVMe Read command, provide results
|
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
--------
|
|
|
|
[verse]
|
|
|
|
'nvme-read' <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]
|
2025-02-16 12:20:48 +01:00
|
|
|
[--storage-tag<storage-tag> | -g <storage-tag>]
|
2025-02-16 12:11:43 +01:00
|
|
|
[--storage-tag-check<storage-tag-check> | -C <storage-tag-check>]
|
2025-02-16 12:15:45 +01:00
|
|
|
[--force]
|
2025-02-16 11:09:01 +01:00
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
|
|
|
The Read command reads the logical blocks specified by the command from
|
|
|
|
the medium and copies to the data data buffer provided. Will use stdout
|
|
|
|
by default if you don't provide a file.
|
|
|
|
|
|
|
|
OPTIONS
|
|
|
|
-------
|
|
|
|
--start-block=<slba>::
|
|
|
|
-s <slba>::
|
|
|
|
Start block.
|
|
|
|
|
|
|
|
--block-count::
|
|
|
|
-c::
|
|
|
|
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).
|
|
|
|
|
|
|
|
--data-size=<size>::
|
|
|
|
-z <size>::
|
|
|
|
Size of data, in bytes.
|
|
|
|
|
|
|
|
--metadata-size=<size>::
|
|
|
|
-y <size>::
|
|
|
|
Size of metadata in bytes.
|
|
|
|
|
|
|
|
--data=<data-file>::
|
|
|
|
-d <data-file>::
|
|
|
|
Data file. If none provided, contents are sent to STDOUT.
|
|
|
|
|
|
|
|
--metadata=<metadata-file>::
|
|
|
|
-M <metadata-file>::
|
|
|
|
Metadata file, if necessary.
|
|
|
|
|
|
|
|
--prinfo=<prinfo>::
|
|
|
|
-p <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
|
|
|
|
|=================
|
|
|
|
|
|
|
|
--ref-tag=<reftag>::
|
|
|
|
-r <reftag>::
|
|
|
|
Optional reftag when used with protection information.
|
|
|
|
|
|
|
|
--app-tag-mask=<appmask>::
|
|
|
|
-m <appmask>::
|
|
|
|
Optional application tag mask when used with protection information.
|
|
|
|
|
|
|
|
--force-unit-access::
|
|
|
|
-f::
|
|
|
|
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
|
2025-02-16 12:16:19 +01:00
|
|
|
specification (1.3a) defines only one directive, 01h, for write
|
|
|
|
stream identifiers.
|
2025-02-16 11:09:01 +01:00
|
|
|
|
|
|
|
-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>::
|
2025-02-16 12:15:45 +01:00
|
|
|
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
|
2025-02-16 11:09:01 +01:00
|
|
|
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).
|
|
|
|
|
2025-02-16 12:20:48 +01:00
|
|
|
--storage-tag=<storage-tag>::
|
|
|
|
-g <storage-tag>::
|
|
|
|
Variable Sized Expected Logical Block Storage Tag(ELBST).
|
|
|
|
|
2025-02-16 12:11:43 +01:00
|
|
|
--storage-tag-check=<storage-tag-check>::
|
|
|
|
-C <storage-tag-check>::
|
|
|
|
This bit specifies the Storage Tag field shall be checked as part of end-to-end
|
|
|
|
data protection processing.
|
|
|
|
|
2025-02-16 12:15:45 +01:00
|
|
|
--force::
|
2025-02-16 12:16:19 +01:00
|
|
|
Ignore namespace is currently busy and performed the operation
|
2025-02-16 12:15:45 +01:00
|
|
|
even though.
|
|
|
|
|
2025-02-16 11:09:01 +01:00
|
|
|
EXAMPLES
|
|
|
|
--------
|
|
|
|
No examples yet.
|
|
|
|
|
|
|
|
NVME
|
|
|
|
----
|
|
|
|
Part of the nvme-user suite
|