svn commit: r360546 - head/sbin/nvmecontrol

Warner Losh imp at FreeBSD.org
Fri May 1 20:29:47 UTC 2020


Author: imp
Date: Fri May  1 20:29:46 2020
New Revision: 360546
URL: https://svnweb.freebsd.org/changeset/base/360546

Log:
  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

Modified:
  head/sbin/nvmecontrol/nvmecontrol.8

Modified: head/sbin/nvmecontrol/nvmecontrol.8
==============================================================================
--- head/sbin/nvmecontrol/nvmecontrol.8	Fri May  1 20:20:23 2020	(r360545)
+++ head/sbin/nvmecontrol/nvmecontrol.8	Fri May  1 20:29:46 2020	(r360546)
@@ -1,4 +1,5 @@
 .\"
+.\" Copyright (c) 2020 Warner Losh <imp at FreeBSD.org>
 .\" Copyright (c) 2018-2019 Alexander Motin <mav at FreeBSD.org>
 .\" Copyright (c) 2012 Intel Corporation
 .\" All rights reserved.
@@ -34,7 +35,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd August 5, 2019
+.Dd April 30, 2020
 .Dt NVMECONTROL 8
 .Os
 .Sh NAME
@@ -47,8 +48,8 @@
 .Ic identify
 .Op Fl v
 .Op Fl x
-.Aq device id
-.Aq namespace id
+.Op Fl n Ar nsid
+.Aq Ar device-id | Ar namespace-id
 .Nm
 .Ic perftest
 .Aq Fl n Ar num_threads
@@ -56,10 +57,10 @@
 .Op Fl p
 .Aq Fl s Ar size_in_bytes
 .Aq Fl t Ar time_in_sec
-.Aq namespace id
+.Aq Ar namespace-id
 .Nm
 .Ic reset
-.Aq controller id
+.Aq Ar device-id
 .Nm
 .Ic logpage
 .Aq Fl p Ar page_id
@@ -69,26 +70,25 @@
 .Op Fl f Ar LSP
 .Op Fl i Ar LSI
 .Op Fl r
-.Aq device id
-.Aq namespace id
+.Aq Ar device-id | Ar namespace-id
 .Nm
 .Ic ns active
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic ns allocated
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic ns attach
 .Aq Fl n Ar nsid
 .Aq Fl c Ar cntid
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic ns attached
 .Aq Fl n Ar nsid
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic ns controllers
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic ns create
 .Aq Fl s Ar nsze
@@ -100,33 +100,32 @@
 .Op Fl l Ar pil
 .Op Fl L Ar flbas
 .Op Fl d Ar dps
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic ns delete
 .Aq Fl n Ar nsid
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic ns detach
 .Aq Fl n Ar nsid
 .Aq Fl c Ar cntid
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic ns identify
 .Op Fl v
 .Op Fl x
 .Aq Fl n Ar nsid
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic nsid
-.Aq device id
-.Aq namespace id
+.Aq Ar device-id | Ar namespace-id
 .Nm
 .Ic resv acquire
 .Aq Fl c Ar crkey
 .Op Fl p Ar prkey
 .Aq Fl t Ar rtype
 .Aq Fl a Ar racqa
-.Aq namespace id
+.Aq Ar namespace-id
 .Nm
 .Ic resv register
 .Op Fl c Ar crkey
@@ -134,25 +133,25 @@
 .Aq Fl r Ar rrega
 .Op Fl i Ar iekey
 .Op Fl p Ar cptpl
-.Aq namespace id
+.Aq Ar namespace-id
 .Nm
 .Ic resv release
 .Aq Fl c Ar crkey
 .Aq Fl t Ar rtype
 .Aq Fl a Ar rrela
-.Aq namespace id
+.Aq Ar namespace-id
 .Nm
 .Ic resv report
 .Op Fl e
 .Op Fl v
 .Op Fl x
-.Aq namespace id
+.Aq Ar namespace-id
 .Nm
 .Ic firmware
 .Op Fl s Ar slot
 .Op Fl f Ar path_to_firmware
 .Op Fl a
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic format
 .Op Fl f Ar fmt
@@ -161,8 +160,7 @@
 .Op Fl l Ar pil
 .Op Fl E
 .Op Fl C
-.Aq device id
-.Aq namespace id
+.Aq Ar device-id | Ar namespace-id
 .Nm
 .Ic sanitize
 .Aq Fl a Ar sanact
@@ -172,7 +170,7 @@
 .Op Fl r
 .Op Fl I
 .Op Fl U
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic power
 .Op Fl l
@@ -181,25 +179,57 @@
 .Nm
 .Ic wdc cap-diag
 .Op Fl o path_template
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic wdc drive-log
 .Op Fl o path_template
-.Aq device id
+.Aq Ar device-id
 .Nm
 .Ic wdc get-crash-dump
 .Op Fl o path_template
-.Aq device id
+.Aq Ar device-id
 .\" .Nm
 .\" .Ic wdc purge
-.\" .Aq device id
+.\" .Aq device-id
 .\" .Nm
 .\" .Ic wdc purge-monitor
-.\" .Aq device id
+.\" .Aq device-id
 .Sh DESCRIPTION
 NVM Express (NVMe) is a storage protocol standard, for SSDs and other
 high-speed storage devices over PCI Express.
 .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
 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.
@@ -250,6 +280,12 @@ will set Retain Asynchronous Event.
 Various namespace management commands.
 If namespace management is supported by device, allow list, create and delete
 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
 Acquire or preempt namespace reservation, using specified parameters:
 .Bl -tag -width 6n
@@ -430,19 +466,54 @@ the drive's serial number and the type of dump it is f
 by .bin.
 These logs must be sent to the vendor for analysis.
 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
 .Dl nvmecontrol devlist
 .Pp
 Display a list of NVMe controllers and namespaces along with their device nodes.
 .Pp
 .Dl nvmecontrol identify nvme0
+.Dl nvmecontrol identify -n 0 nvd0
 .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
 .Dl nvmecontrol identify -x -v nvme0ns1
+.Dl nvmecontrol identify -x -v -n 1 nvme0
 .Pp
-Display an hexadecimal dump of the nvme0 IDENTIFY_NAMESPACE data for namespace
-1.
+Display an hexadecimal dump of the nvme0
+.Dv IDENTIFY_NAMESPACE
+data for namespace 1.
 .Pp
 .Dl nvmecontrol perftest -n 32 -o read -s 512 -t 30 nvme0ns1
 .Pp
@@ -451,8 +522,10 @@ Each thread will issue a single 512 byte read command.
 Results are printed to stdout when 30 seconds expires.
 .Pp
 .Dl nvmecontrol reset nvme0
+.Dl nvmecontrol reset nda4
 .Pp
 Perform a controller-level reset of the nvme0 controller.
+In this example, nda4 is wired to nvme0.
 .Pp
 .Dl nvmecontrol logpage -p 1 nvme0
 .Pp
@@ -500,6 +573,24 @@ Set the current power mode.
 .Dl nvmecontrol power nvme0
 .Pp
 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
 The directories
 .Pa /lib/nvmecontrol


More information about the svn-src-all mailing list