xref: /netbsd-src/sbin/nvmectl/nvmectl.8 (revision 6eddb6bb081a6582e4333f888ad27b438207ac4d)
1*6eddb6bbSjdolecek.\" $NetBSD: nvmectl.8,v 1.6 2020/09/27 18:17:35 jdolecek Exp $
2cae3c2f4Snonaka.\"
3cae3c2f4Snonaka.\" Copyright (c) 2012 Intel Corporation
4cae3c2f4Snonaka.\" All rights reserved.
5cae3c2f4Snonaka.\"
6cae3c2f4Snonaka.\" Redistribution and use in source and binary forms, with or without
7cae3c2f4Snonaka.\" modification, are permitted provided that the following conditions
8cae3c2f4Snonaka.\" are met:
9cae3c2f4Snonaka.\" 1. Redistributions of source code must retain the above copyright
10cae3c2f4Snonaka.\"    notice, this list of conditions, and the following disclaimer,
11cae3c2f4Snonaka.\"    without modification.
12cae3c2f4Snonaka.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer
13cae3c2f4Snonaka.\"    substantially similar to the "NO WARRANTY" disclaimer below
14cae3c2f4Snonaka.\"    ("Disclaimer") and any redistribution must be conditioned upon
15cae3c2f4Snonaka.\"    including a substantially similar Disclaimer requirement for further
16cae3c2f4Snonaka.\"    binary redistribution.
17cae3c2f4Snonaka.\"
18cae3c2f4Snonaka.\" NO WARRANTY
19cae3c2f4Snonaka.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20cae3c2f4Snonaka.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21cae3c2f4Snonaka.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
22cae3c2f4Snonaka.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23cae3c2f4Snonaka.\" HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24cae3c2f4Snonaka.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25cae3c2f4Snonaka.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26cae3c2f4Snonaka.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27cae3c2f4Snonaka.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
28cae3c2f4Snonaka.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29cae3c2f4Snonaka.\" POSSIBILITY OF SUCH DAMAGES.
30cae3c2f4Snonaka.\"
31cae3c2f4Snonaka.\" nvmecontrol man page.
32cae3c2f4Snonaka.\"
33cae3c2f4Snonaka.\" Author: Jim Harris <jimharris@FreeBSD.org>
34cae3c2f4Snonaka.\"
35d003492fSnonaka.\" $FreeBSD: head/sbin/nvmecontrol/nvmecontrol.8 314230 2017-02-25 00:09:16Z imp $
36cae3c2f4Snonaka.\"
37*6eddb6bbSjdolecek.Dd September 27, 2020
38cae3c2f4Snonaka.Dt NVMECTL 8
39cae3c2f4Snonaka.Os
40cae3c2f4Snonaka.Sh NAME
41cae3c2f4Snonaka.Nm nvmectl
42cae3c2f4Snonaka.Nd NVM Express control utility
43cae3c2f4Snonaka.Sh SYNOPSIS
44cae3c2f4Snonaka.Nm
45cae3c2f4Snonaka.Ic devlist
46cae3c2f4Snonaka.Nm
47cae3c2f4Snonaka.Ic identify
48a6daee9bSwiz.Op Fl x Op Fl v
49a6daee9bSwiz.Ar device_id
50cae3c2f4Snonaka.\".Nm
51cae3c2f4Snonaka.\".Ic perftest
52a6daee9bSwiz.\".Op Fl p
53cae3c2f4Snonaka.\".Aq Fl n Ar num_threads
54cae3c2f4Snonaka.\".Aq Fl o Ar read|write
55cae3c2f4Snonaka.\".Aq Fl s Ar size_in_bytes
56cae3c2f4Snonaka.\".Aq Fl t Ar time_in_sec
57ca639f32Snonaka.\".Aq namespace_id
58cae3c2f4Snonaka.\".Nm
59cae3c2f4Snonaka.\".Ic reset
60ca639f32Snonaka.\".Aq controller_id
61cae3c2f4Snonaka.Nm
62cae3c2f4Snonaka.Ic logpage
63cae3c2f4Snonaka.Op Fl x
64a6daee9bSwiz.Op Fl p Ar page_id
65d003492fSnonaka.Op Fl v Ar vendor-string
66d003492fSnonaka.Op Fl b
67a6daee9bSwiz.Ar device_id Ns | Ns Ar namespace_id
68cae3c2f4Snonaka.\".Nm
69cae3c2f4Snonaka.\".Ic firmware
70a6daee9bSwiz.\".Op Fl a
71cae3c2f4Snonaka.\".Op Fl s Ar slot
72cae3c2f4Snonaka.\".Op Fl f Ar path_to_firmware
73cae3c2f4Snonaka.\".Aq device id
74cae3c2f4Snonaka.Nm
75cae3c2f4Snonaka.Ic power
76cae3c2f4Snonaka.Op Fl l
77*6eddb6bbSjdolecek.Op Fl s
78a6daee9bSwiz.Op Fl p Ar power_state
79a6daee9bSwiz.Op Fl w Ar workload_hint
80a6daee9bSwiz.Ar device_id
81d003492fSnonaka.Nm
82d003492fSnonaka.Ic wdc cap-diag
83d003492fSnonaka.Op Fl o path_template
84ca639f32Snonaka.Ar device_id
85cae3c2f4Snonaka.Sh DESCRIPTION
86cae3c2f4SnonakaNVM Express (NVMe) is a storage protocol standard, for SSDs and other
87cae3c2f4Snonakahigh-speed storage devices over PCI Express.
88*6eddb6bbSjdolecek.Ss power
89*6eddb6bbSjdolecekThe power command controls the supported power states.
90*6eddb6bbSjdolecek.Fl l
91*6eddb6bbSjdolecekwill list supported power states.
92*6eddb6bbSjdolecek.Fl p
93*6eddb6bbSjdolecekwill set the power state to specified value.
94*6eddb6bbSjdolecek.Fl w
95*6eddb6bbSjdolecekwill set workload value.
96*6eddb6bbSjdolecekWith
97*6eddb6bbSjdolecek.Fl s ,
98*6eddb6bbSjdolecekthe specified power state and workload value is saved,
99*6eddb6bbSjdolecekso it persists any autonomous transitions and resets.
100*6eddb6bbSjdolecekSupport for saving the values is optional, and depends on the controller.
101d003492fSnonaka.Ss logpage
102d003492fSnonakaThe logpage command knows how to print log pages of various types.
103d003492fSnonakaIt also knows about vendor specific log pages from hgst/wdc and intel.
104d003492fSnonakaPage 0xc1 for hgst/wdc contains the advanced smart information about
105d003492fSnonakathe drive.
106d003492fSnonakaPage 0xc1 is read latency stats for intel.
107d003492fSnonakaPage 0xc2 is write latency stats for intel.
108d003492fSnonakaPage 0xc5 is temperature stats for intel.
109d003492fSnonakaPage 0xca is advanced smart information for intel.
110d003492fSnonaka.Pp
111d003492fSnonakaSpecifying
112d003492fSnonaka.Fl p
113d003492fSnonaka.Ic help
114d003492fSnonakawill list all valid vendors and pages.
115d003492fSnonaka.Fl x
116d003492fSnonakawill print the page as hex.
117d003492fSnonaka.Fl b
118d003492fSnonakawill print the binary data for the page.
119d003492fSnonaka.Ss wdc
12093cd6a62SwizThe various wdc commands retrieve log data from the wdc/hgst drives.
121d003492fSnonakaThe
122d003492fSnonaka.Fl o
123d003492fSnonakaflag specifies a path template to use to output the files.
124d003492fSnonakaEach file takes the path template (which defaults to nothing), appends
125d003492fSnonakathe drive's serial number and the type of dump it is followed
12693cd6a62Swizby
12793cd6a62Swiz.Pa .bin .
128d003492fSnonakaThese logs must be sent to the vendor for analysis.
129d003492fSnonakaThis tool only provides a way to extract them.
130cae3c2f4Snonaka.Sh EXAMPLES
131cae3c2f4Snonaka.Dl nvmectl devlist
132cae3c2f4Snonaka.Pp
133cae3c2f4SnonakaDisplay a list of NVMe controllers and namespaces along with their device nodes.
134cae3c2f4Snonaka.Pp
135cae3c2f4Snonaka.Dl nvmectl identify nvme0
136cae3c2f4Snonaka.Pp
137cae3c2f4SnonakaDisplay a human-readable summary of the nvme0 IDENTIFY_CONTROLLER data.
138cae3c2f4Snonaka.Pp
139cae3c2f4Snonaka.Dl nvmectl identify -x -v nvme0ns1
140cae3c2f4Snonaka.Pp
141a6daee9bSwizDisplay an hexadecimal dump of the nvme0
142a6daee9bSwiz.Dv IDENTIFY_NAMESPACE
143a6daee9bSwizdata for namespace 1.
144cae3c2f4Snonaka.\".Pp
145cae3c2f4Snonaka.\".Dl nvmectl perftest -n 32 -o read -s 512 -t 30 nvme0ns1
146cae3c2f4Snonaka.\".Pp
147d003492fSnonaka.\"Run a performance test on nvme0ns1 using 32 kernel threads for 30 seconds.
148d003492fSnonaka.\"Each thread will issue a single 512 byte read command.
149d003492fSnonaka.\"Results are printed to stdout when 30 seconds expires.
150cae3c2f4Snonaka.\".Pp
151cae3c2f4Snonaka.\".Dl nvmectl reset nvme0
152cae3c2f4Snonaka.\".Pp
153cae3c2f4Snonaka.\"Perform a controller-level reset of the nvme0 controller.
154cae3c2f4Snonaka.Pp
155cae3c2f4Snonaka.Dl nvmectl logpage -p 1 nvme0
156cae3c2f4Snonaka.Pp
157cae3c2f4SnonakaDisplay a human-readable summary of the nvme0 controller's Error Information Log.
158cae3c2f4SnonakaLog pages defined by the NVMe specification include Error Information Log (ID=1),
159cae3c2f4SnonakaSMART/Health Information Log (ID=2), and Firmware Slot Log (ID=3).
160cae3c2f4Snonaka.Pp
161d003492fSnonaka.Dl nvmectl logpage -p 0xc1 -v wdc nvme0
162d003492fSnonaka.Pp
163d003492fSnonakaDisplay a human-readable summary of the nvme0's wdc-specific advanced
164d003492fSnonakaSMART data.
165d003492fSnonaka.Pp
166cae3c2f4Snonaka.Dl nvmectl logpage -p 1 -x nvme0
167cae3c2f4Snonaka.Pp
168cae3c2f4SnonakaDisplay a hexadecimal dump of the nvme0 controller's Error Information Log.
169d003492fSnonaka.Pp
170d003492fSnonaka.Dl nvmectl logpage -p 0xcb -b nvme0 > /tmp/page-cb.bin
171d003492fSnonaka.Pp
172d003492fSnonakaPrint the contents of vendor specific page 0xcb as binary data on
173d003492fSnonakastandard out.
174d003492fSnonakaRedirect it to a temporary file.
175cae3c2f4Snonaka.\".Pp
176cae3c2f4Snonaka.\".Dl nvmectl firmware -s 2 -f /tmp/nvme_firmware nvme0
177cae3c2f4Snonaka.\".Pp
178cae3c2f4Snonaka.\"Download the firmware image contained in "/tmp/nvme_firmware" to slot 2 of the
179cae3c2f4Snonaka.\"nvme0 controller, but do not activate the image.
180cae3c2f4Snonaka.\".Pp
181cae3c2f4Snonaka.\".Dl nvmectl firmware -s 4 -a nvme0
182cae3c2f4Snonaka.\".Pp
183cae3c2f4Snonaka.\"Activate the firmware in slot 4 of the nvme0 controller on the next reset.
184cae3c2f4Snonaka.\".Pp
185cae3c2f4Snonaka.\".Dl nvmectl firmware -s 7 -f /tmp/nvme_firmware -a nvme0
186cae3c2f4Snonaka.\".Pp
187cae3c2f4Snonaka.\"Download the firmware image contained in "/tmp/nvme_firmware" to slot 7 of the
188cae3c2f4Snonaka.\"nvme0 controller and activate it on the next reset.
189cae3c2f4Snonaka.Pp
190cae3c2f4Snonaka.Dl nvmectl power -l nvme0
191cae3c2f4Snonaka.Pp
192cae3c2f4SnonakaList all the current power modes.
193cae3c2f4Snonaka.Pp
194cae3c2f4Snonaka.Dl nvmectl power -p 3 nvme0
195cae3c2f4Snonaka.Pp
196cae3c2f4SnonakaSet the current power mode.
197cae3c2f4Snonaka.Pp
198cae3c2f4Snonaka.Dl nvmectl power nvme0
199cae3c2f4Snonaka.Pp
200cae3c2f4SnonakaGet the current power mode.
201d003492fSnonaka.Sh HISTORY
202d003492fSnonakaThe nvmecontrol utility appeared in
203d003492fSnonaka.Fx 9.2 .
204cae3c2f4Snonaka.Sh AUTHORS
205cae3c2f4Snonaka.An -nosplit
206cae3c2f4Snonakanvmecontrol was developed by Intel and originally written by
207cae3c2f4Snonaka.An Jim Harris Aq Mt jimharris@FreeBSD.org .
208cae3c2f4Snonaka.Pp
209cae3c2f4SnonakaThis man page was written by
210cae3c2f4Snonaka.An Jim Harris Aq Mt jimharris@FreeBSD.org .
211