Various improvements to this man page:
o Be consistent about device-id and namespace-id o Use consistent arg markup for these o document you can use disk names too o document nsid command better o document the idenntify command o add a couple of examples. Differential Revision: https://reviews.freebsd.org/D24638
This commit is contained in:
parent
272a882b37
commit
a41b48ea12
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=360546
|
@ -1,4 +1,5 @@
|
||||||
.\"
|
.\"
|
||||||
|
.\" Copyright (c) 2020 Warner Losh <imp@FreeBSD.org>
|
||||||
.\" Copyright (c) 2018-2019 Alexander Motin <mav@FreeBSD.org>
|
.\" Copyright (c) 2018-2019 Alexander Motin <mav@FreeBSD.org>
|
||||||
.\" Copyright (c) 2012 Intel Corporation
|
.\" Copyright (c) 2012 Intel Corporation
|
||||||
.\" All rights reserved.
|
.\" All rights reserved.
|
||||||
|
@ -34,7 +35,7 @@
|
||||||
.\"
|
.\"
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd August 5, 2019
|
.Dd April 30, 2020
|
||||||
.Dt NVMECONTROL 8
|
.Dt NVMECONTROL 8
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -47,8 +48,8 @@
|
||||||
.Ic identify
|
.Ic identify
|
||||||
.Op Fl v
|
.Op Fl v
|
||||||
.Op Fl x
|
.Op Fl x
|
||||||
.Aq device id
|
.Op Fl n Ar nsid
|
||||||
.Aq namespace id
|
.Aq Ar device-id | Ar namespace-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic perftest
|
.Ic perftest
|
||||||
.Aq Fl n Ar num_threads
|
.Aq Fl n Ar num_threads
|
||||||
|
@ -56,10 +57,10 @@
|
||||||
.Op Fl p
|
.Op Fl p
|
||||||
.Aq Fl s Ar size_in_bytes
|
.Aq Fl s Ar size_in_bytes
|
||||||
.Aq Fl t Ar time_in_sec
|
.Aq Fl t Ar time_in_sec
|
||||||
.Aq namespace id
|
.Aq Ar namespace-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic reset
|
.Ic reset
|
||||||
.Aq controller id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic logpage
|
.Ic logpage
|
||||||
.Aq Fl p Ar page_id
|
.Aq Fl p Ar page_id
|
||||||
|
@ -69,26 +70,25 @@
|
||||||
.Op Fl f Ar LSP
|
.Op Fl f Ar LSP
|
||||||
.Op Fl i Ar LSI
|
.Op Fl i Ar LSI
|
||||||
.Op Fl r
|
.Op Fl r
|
||||||
.Aq device id
|
.Aq Ar device-id | Ar namespace-id
|
||||||
.Aq namespace id
|
|
||||||
.Nm
|
.Nm
|
||||||
.Ic ns active
|
.Ic ns active
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic ns allocated
|
.Ic ns allocated
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic ns attach
|
.Ic ns attach
|
||||||
.Aq Fl n Ar nsid
|
.Aq Fl n Ar nsid
|
||||||
.Aq Fl c Ar cntid
|
.Aq Fl c Ar cntid
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic ns attached
|
.Ic ns attached
|
||||||
.Aq Fl n Ar nsid
|
.Aq Fl n Ar nsid
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic ns controllers
|
.Ic ns controllers
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic ns create
|
.Ic ns create
|
||||||
.Aq Fl s Ar nsze
|
.Aq Fl s Ar nsze
|
||||||
|
@ -100,33 +100,32 @@
|
||||||
.Op Fl l Ar pil
|
.Op Fl l Ar pil
|
||||||
.Op Fl L Ar flbas
|
.Op Fl L Ar flbas
|
||||||
.Op Fl d Ar dps
|
.Op Fl d Ar dps
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic ns delete
|
.Ic ns delete
|
||||||
.Aq Fl n Ar nsid
|
.Aq Fl n Ar nsid
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic ns detach
|
.Ic ns detach
|
||||||
.Aq Fl n Ar nsid
|
.Aq Fl n Ar nsid
|
||||||
.Aq Fl c Ar cntid
|
.Aq Fl c Ar cntid
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic ns identify
|
.Ic ns identify
|
||||||
.Op Fl v
|
.Op Fl v
|
||||||
.Op Fl x
|
.Op Fl x
|
||||||
.Aq Fl n Ar nsid
|
.Aq Fl n Ar nsid
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic nsid
|
.Ic nsid
|
||||||
.Aq device id
|
.Aq Ar device-id | Ar namespace-id
|
||||||
.Aq namespace id
|
|
||||||
.Nm
|
.Nm
|
||||||
.Ic resv acquire
|
.Ic resv acquire
|
||||||
.Aq Fl c Ar crkey
|
.Aq Fl c Ar crkey
|
||||||
.Op Fl p Ar prkey
|
.Op Fl p Ar prkey
|
||||||
.Aq Fl t Ar rtype
|
.Aq Fl t Ar rtype
|
||||||
.Aq Fl a Ar racqa
|
.Aq Fl a Ar racqa
|
||||||
.Aq namespace id
|
.Aq Ar namespace-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic resv register
|
.Ic resv register
|
||||||
.Op Fl c Ar crkey
|
.Op Fl c Ar crkey
|
||||||
|
@ -134,25 +133,25 @@
|
||||||
.Aq Fl r Ar rrega
|
.Aq Fl r Ar rrega
|
||||||
.Op Fl i Ar iekey
|
.Op Fl i Ar iekey
|
||||||
.Op Fl p Ar cptpl
|
.Op Fl p Ar cptpl
|
||||||
.Aq namespace id
|
.Aq Ar namespace-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic resv release
|
.Ic resv release
|
||||||
.Aq Fl c Ar crkey
|
.Aq Fl c Ar crkey
|
||||||
.Aq Fl t Ar rtype
|
.Aq Fl t Ar rtype
|
||||||
.Aq Fl a Ar rrela
|
.Aq Fl a Ar rrela
|
||||||
.Aq namespace id
|
.Aq Ar namespace-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic resv report
|
.Ic resv report
|
||||||
.Op Fl e
|
.Op Fl e
|
||||||
.Op Fl v
|
.Op Fl v
|
||||||
.Op Fl x
|
.Op Fl x
|
||||||
.Aq namespace id
|
.Aq Ar namespace-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic firmware
|
.Ic firmware
|
||||||
.Op Fl s Ar slot
|
.Op Fl s Ar slot
|
||||||
.Op Fl f Ar path_to_firmware
|
.Op Fl f Ar path_to_firmware
|
||||||
.Op Fl a
|
.Op Fl a
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic format
|
.Ic format
|
||||||
.Op Fl f Ar fmt
|
.Op Fl f Ar fmt
|
||||||
|
@ -161,8 +160,7 @@
|
||||||
.Op Fl l Ar pil
|
.Op Fl l Ar pil
|
||||||
.Op Fl E
|
.Op Fl E
|
||||||
.Op Fl C
|
.Op Fl C
|
||||||
.Aq device id
|
.Aq Ar device-id | Ar namespace-id
|
||||||
.Aq namespace id
|
|
||||||
.Nm
|
.Nm
|
||||||
.Ic sanitize
|
.Ic sanitize
|
||||||
.Aq Fl a Ar sanact
|
.Aq Fl a Ar sanact
|
||||||
|
@ -172,7 +170,7 @@
|
||||||
.Op Fl r
|
.Op Fl r
|
||||||
.Op Fl I
|
.Op Fl I
|
||||||
.Op Fl U
|
.Op Fl U
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic power
|
.Ic power
|
||||||
.Op Fl l
|
.Op Fl l
|
||||||
|
@ -181,25 +179,57 @@
|
||||||
.Nm
|
.Nm
|
||||||
.Ic wdc cap-diag
|
.Ic wdc cap-diag
|
||||||
.Op Fl o path_template
|
.Op Fl o path_template
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic wdc drive-log
|
.Ic wdc drive-log
|
||||||
.Op Fl o path_template
|
.Op Fl o path_template
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.Nm
|
.Nm
|
||||||
.Ic wdc get-crash-dump
|
.Ic wdc get-crash-dump
|
||||||
.Op Fl o path_template
|
.Op Fl o path_template
|
||||||
.Aq device id
|
.Aq Ar device-id
|
||||||
.\" .Nm
|
.\" .Nm
|
||||||
.\" .Ic wdc purge
|
.\" .Ic wdc purge
|
||||||
.\" .Aq device id
|
.\" .Aq device-id
|
||||||
.\" .Nm
|
.\" .Nm
|
||||||
.\" .Ic wdc purge-monitor
|
.\" .Ic wdc purge-monitor
|
||||||
.\" .Aq device id
|
.\" .Aq device-id
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
NVM Express (NVMe) is a storage protocol standard, for SSDs and other
|
NVM Express (NVMe) is a storage protocol standard, for SSDs and other
|
||||||
high-speed storage devices over PCI Express.
|
high-speed storage devices over PCI Express.
|
||||||
.Pp
|
.Pp
|
||||||
|
.Ss identify
|
||||||
|
The identify commands reports information from the drive's
|
||||||
|
.Dv IDENTIFY_CONTROLLER
|
||||||
|
if a
|
||||||
|
.Ar device-id
|
||||||
|
is specified.
|
||||||
|
It reports
|
||||||
|
.Dv IDENTIFY_NAMESPACE
|
||||||
|
data if a
|
||||||
|
.Ar namespace-id
|
||||||
|
is specified.
|
||||||
|
When used with disk names, the
|
||||||
|
.Dv IDENTIFY_NAMESPACE
|
||||||
|
data is reported, unless the namespace
|
||||||
|
.Ar nsid
|
||||||
|
is overridden with the
|
||||||
|
.Fl n
|
||||||
|
flag.
|
||||||
|
Then that namespace's data is reported, if it exists.
|
||||||
|
The command accepts the following parameters:
|
||||||
|
.Bl -tag -width 6n
|
||||||
|
.It Fl n
|
||||||
|
The namespace
|
||||||
|
.Aq nsid
|
||||||
|
to use instead of the namespace associated with the device.
|
||||||
|
A
|
||||||
|
.Ar nsid
|
||||||
|
of
|
||||||
|
.Dq 0
|
||||||
|
is used to retrieve the
|
||||||
|
.Dv IDENTIFY_CONTROLLER
|
||||||
|
data associated with that drive.
|
||||||
.Ss logpage
|
.Ss logpage
|
||||||
The logpage command knows how to print log pages of various types.
|
The logpage command knows how to print log pages of various types.
|
||||||
It also knows about vendor specific log pages from hgst/wdc and intel.
|
It also knows about vendor specific log pages from hgst/wdc and intel.
|
||||||
|
@ -250,6 +280,12 @@ will set Retain Asynchronous Event.
|
||||||
Various namespace management commands.
|
Various namespace management commands.
|
||||||
If namespace management is supported by device, allow list, create and delete
|
If namespace management is supported by device, allow list, create and delete
|
||||||
namespaces, list, attach and detach controllers to namespaces.
|
namespaces, list, attach and detach controllers to namespaces.
|
||||||
|
.Ss nsid
|
||||||
|
Reports the namespace id and controller device associated with the
|
||||||
|
.Aq Ar namespace-id
|
||||||
|
or
|
||||||
|
.Aq Ar device-id
|
||||||
|
argument.
|
||||||
.Ss resv acquire
|
.Ss resv acquire
|
||||||
Acquire or preempt namespace reservation, using specified parameters:
|
Acquire or preempt namespace reservation, using specified parameters:
|
||||||
.Bl -tag -width 6n
|
.Bl -tag -width 6n
|
||||||
|
@ -430,19 +466,54 @@ the drive's serial number and the type of dump it is followed
|
||||||
by .bin.
|
by .bin.
|
||||||
These logs must be sent to the vendor for analysis.
|
These logs must be sent to the vendor for analysis.
|
||||||
This tool only provides a way to extract them.
|
This tool only provides a way to extract them.
|
||||||
|
.Sh DEVICE NAMES
|
||||||
|
Where
|
||||||
|
.Aq Ar namespace-id
|
||||||
|
is required, you can use either the
|
||||||
|
.Pa nvmeXnsY
|
||||||
|
device, or the disk device such as
|
||||||
|
.Pa ndaZ
|
||||||
|
or
|
||||||
|
.Pa nvdZ .
|
||||||
|
The leading
|
||||||
|
.Pa /dev/
|
||||||
|
is omitted.
|
||||||
|
Where
|
||||||
|
.Aq Ar device-id
|
||||||
|
is required, you can use either the
|
||||||
|
.Pa nvmeX
|
||||||
|
device, or the disk device such as
|
||||||
|
.Pa nda Z
|
||||||
|
or
|
||||||
|
.Pa nvdZ .
|
||||||
|
For commands that take an optional
|
||||||
|
.Aq nsid
|
||||||
|
you can use it to get information on other namespaces, or to query the
|
||||||
|
drive itself.
|
||||||
|
A
|
||||||
|
.Aq nsid
|
||||||
|
of
|
||||||
|
.Dq 0
|
||||||
|
means query the drive itself.
|
||||||
.Sh EXAMPLES
|
.Sh EXAMPLES
|
||||||
.Dl nvmecontrol devlist
|
.Dl nvmecontrol devlist
|
||||||
.Pp
|
.Pp
|
||||||
Display a list of NVMe controllers and namespaces along with their device nodes.
|
Display a list of NVMe controllers and namespaces along with their device nodes.
|
||||||
.Pp
|
.Pp
|
||||||
.Dl nvmecontrol identify nvme0
|
.Dl nvmecontrol identify nvme0
|
||||||
|
.Dl nvmecontrol identify -n 0 nvd0
|
||||||
.Pp
|
.Pp
|
||||||
Display a human-readable summary of the nvme0 IDENTIFY_CONTROLLER data.
|
Display a human-readable summary of the nvme0
|
||||||
|
.Dv IDENTIFY_CONTROLLER
|
||||||
|
data.
|
||||||
|
In this example, nvd0 is connected to nvme0.
|
||||||
.Pp
|
.Pp
|
||||||
.Dl nvmecontrol identify -x -v nvme0ns1
|
.Dl nvmecontrol identify -x -v nvme0ns1
|
||||||
|
.Dl nvmecontrol identify -x -v -n 1 nvme0
|
||||||
.Pp
|
.Pp
|
||||||
Display an hexadecimal dump of the nvme0 IDENTIFY_NAMESPACE data for namespace
|
Display an hexadecimal dump of the nvme0
|
||||||
1.
|
.Dv IDENTIFY_NAMESPACE
|
||||||
|
data for namespace 1.
|
||||||
.Pp
|
.Pp
|
||||||
.Dl nvmecontrol perftest -n 32 -o read -s 512 -t 30 nvme0ns1
|
.Dl nvmecontrol perftest -n 32 -o read -s 512 -t 30 nvme0ns1
|
||||||
.Pp
|
.Pp
|
||||||
|
@ -451,8 +522,10 @@ Each thread will issue a single 512 byte read command.
|
||||||
Results are printed to stdout when 30 seconds expires.
|
Results are printed to stdout when 30 seconds expires.
|
||||||
.Pp
|
.Pp
|
||||||
.Dl nvmecontrol reset nvme0
|
.Dl nvmecontrol reset nvme0
|
||||||
|
.Dl nvmecontrol reset nda4
|
||||||
.Pp
|
.Pp
|
||||||
Perform a controller-level reset of the nvme0 controller.
|
Perform a controller-level reset of the nvme0 controller.
|
||||||
|
In this example, nda4 is wired to nvme0.
|
||||||
.Pp
|
.Pp
|
||||||
.Dl nvmecontrol logpage -p 1 nvme0
|
.Dl nvmecontrol logpage -p 1 nvme0
|
||||||
.Pp
|
.Pp
|
||||||
|
@ -500,6 +573,24 @@ Set the current power mode.
|
||||||
.Dl nvmecontrol power nvme0
|
.Dl nvmecontrol power nvme0
|
||||||
.Pp
|
.Pp
|
||||||
Get the current power mode.
|
Get the current power mode.
|
||||||
|
.Pp
|
||||||
|
.Dl nvmecontrol identify -n 0 nda0
|
||||||
|
.Pp
|
||||||
|
Identify the drive data associated with the
|
||||||
|
.Pa nda0
|
||||||
|
device.
|
||||||
|
The corresponding
|
||||||
|
.Pa nvmeX
|
||||||
|
devices is used automatically.
|
||||||
|
.Pp
|
||||||
|
.Dl nvmecontrol identify nda0
|
||||||
|
.Pp
|
||||||
|
Get the namespace parameters associated with the
|
||||||
|
.Pa nda0
|
||||||
|
device.
|
||||||
|
The corresponding
|
||||||
|
.Pa nvmeXnsY
|
||||||
|
device is used automatically.
|
||||||
.Sh DYNAMIC LOADING
|
.Sh DYNAMIC LOADING
|
||||||
The directories
|
The directories
|
||||||
.Pa /lib/nvmecontrol
|
.Pa /lib/nvmecontrol
|
||||||
|
|
Loading…
Reference in New Issue
Block a user