xref: /linux/Documentation/ABI/stable/sysfs-nvme (revision 55ab7e14222e5f0b0fd9f7711ca391d2924b35e3)
1What:		/sys/class/nvme/nvmeX/model
2What:		/sys/class/nvme/nvmeX/serial
3What:		/sys/class/nvme/nvmeX/firmware_rev
4Date:		January 2016
5KernelVersion:	4.5
6Contact:	Keith Busch <kbusch@kernel.org>
7Description:
8		Shows the model, serial number, or firmware revision string
9		of the NVMe controller, as reported in the Identify
10		Controller data structure.
11
12What:		/sys/class/nvme/nvmeX/cntlid
13Date:		February 2016
14KernelVersion:	4.6
15Contact:	Ming Lin <ming.l@ssi.samsung.com>
16Description:
17		Shows the controller identifier assigned by the NVMe
18		subsystem.
19
20What:		/sys/class/nvme/nvmeX/cntrltype
21What:		/sys/class/nvme/nvmeX/dctype
22Date:		February 2022
23KernelVersion:	5.18
24Contact:	Martin Belanger <martin.belanger@dell.com>
25Description:
26		cntrltype: Shows the controller type. Possible values: "io",
27		"discovery", "admin", "reserved".
28
29		dctype: Shows the discovery controller type. Possible values:
30		"none", "ddc", "cdc", "reserved".
31
32What:		/sys/class/nvme/nvmeX/reset_controller
33Date:		November 2015
34KernelVersion:	4.5
35Contact:	Christoph Hellwig <hch@lst.de>
36Description:
37		Write-only. Writing any value triggers a synchronous
38		controller reset.
39
40What:		/sys/class/nvme/nvmeX/rescan_controller
41Date:		April 2016
42KernelVersion:	4.7
43Contact:	Keith Busch <kbusch@kernel.org>
44Description:
45		Write-only. Writing any value triggers a namespace rescan
46		on this controller.
47
48What:		/sys/class/nvme/nvmeX/transport
49What:		/sys/class/nvme/nvmeX/subsysnqn
50What:		/sys/class/nvme/nvmeX/address
51What:		/sys/class/nvme/nvmeX/delete_controller
52What:		/sys/class/nvme/nvmeX/reconnect_delay
53What:		/sys/class/nvme/nvmeX/ctrl_loss_tmo
54Date:		June 2016
55KernelVersion:	4.8
56Contact:	Ming Lin <ming.l@ssi.samsung.com>
57Description:
58		Fabrics controller attributes added with NVMe-oF support.
59
60		transport: Shows the transport type string. Possible values:
61		"pcie", "tcp", "rdma", "fc", "loop".
62
63		subsysnqn: Shows the NVMe Qualified Name (NQN) of the
64		subsystem this controller belongs to.
65
66		address: Shows the transport-specific address string. Only
67		available for fabrics controllers.
68
69		delete_controller: Write-only. Triggers deletion of this
70		fabrics controller.
71
72		reconnect_delay: Shows or sets the reconnect delay in
73		seconds. Reading returns the delay value, or "off" if
74		disabled.
75
76		ctrl_loss_tmo: Shows or sets the controller loss timeout in
77		seconds. Reading returns the timeout value, or "off" if
78		infinite reconnects are allowed. Writing a negative value
79		disables the timeout.
80
81What:		/sys/class/nvme/nvmeX/hostnqn
82What:		/sys/class/nvme/nvmeX/hostid
83Date:		February 2020
84KernelVersion:	5.7
85Contact:	Sagi Grimberg <sagi@grimberg.me>
86Description:
87		hostnqn: Shows the host NQN used by this fabrics controller.
88
89		hostid: Shows the host identifier (UUID format) used by this
90		fabrics controller.
91
92		Only available for fabrics controllers.
93
94What:		/sys/class/nvme/nvmeX/fast_io_fail_tmo
95Date:		November 2020
96KernelVersion:	5.11
97Contact:	Victor Gladkov <Victor.Gladkov@kioxia.com>
98Description:
99		Shows or sets the fast I/O fail timeout in seconds. Reading
100		returns the timeout value, or "off" if disabled. Writing a
101		negative value disables the fast I/O fail. Only available
102		for fabrics controllers.
103
104What:		/sys/class/nvme/nvmeX/kato
105Date:		April 2021
106KernelVersion:	5.13
107Contact:	Hannes Reinecke <hare@suse.de>
108Description:
109		Shows the Keep Alive Timeout value in milliseconds for
110		this controller.
111
112What:		/sys/class/nvme/nvmeX/cmb
113Date:		October 2016
114KernelVersion:	4.9
115Contact:	Stephen Bates <sbates@raithlin.com>
116Description:
117		Shows the Controller Memory Buffer (CMB) register values
118		in format "cmbloc : 0x%08x\ncmbsz  : 0x%08x\n". Only
119		visible when the controller has a CMB (cmbsz != 0).
120		PCI transport only.
121
122What:		/sys/class/nvme/nvmeX/cmbloc
123What:		/sys/class/nvme/nvmeX/cmbsz
124What:		/sys/class/nvme/nvmeX/hmb
125Date:		July 2021
126KernelVersion:	5.15
127Contact:	Keith Busch <kbusch@kernel.org>
128Description:
129		cmbloc: Shows the CMBLOC register value.
130
131		cmbsz: Shows the CMBSZ register value.
132
133		cmbloc and cmbsz are only visible when the controller has
134		a CMB. PCI transport only.
135
136		hmb: Shows or sets whether the Host Memory Buffer (HMB) is
137		enabled. Reading returns 1 (enabled) or 0 (disabled).
138		Writing 1 enables HMB; writing 0 disables it. Only
139		visible when the controller supports HMB (hmpre != 0).
140		PCI transport only.
141
142What:		/sys/class/nvme/nvmeX/state
143Date:		November 2016
144KernelVersion:	4.11
145Contact:	Sagi Grimberg <sagi@grimberg.me>
146Description:
147		Shows the current state of the controller. Possible values:
148		"new", "live", "resetting", "connecting", "deleting",
149		"deleting (no IO)", "dead".
150
151What:		/sys/class/nvme/nvmeX/numa_node
152Date:		November 2018
153KernelVersion:	5.0
154Contact:	Hannes Reinecke <hare@suse.de>
155Description:
156		Shows the NUMA node the controller is attached to.
157
158What:		/sys/class/nvme/nvmeX/queue_count
159What:		/sys/class/nvme/nvmeX/sqsize
160Date:		September 2019
161KernelVersion:	5.4
162Contact:	James Smart <jsmart2021@gmail.com>
163Description:
164		queue_count: Shows the total number of queues (admin + I/O)
165		for this controller.
166
167		sqsize: Shows the submission queue size for this controller.
168
169What:		/sys/class/nvme/nvmeX/dhchap_secret
170What:		/sys/class/nvme/nvmeX/dhchap_ctrl_secret
171Date:		June 2022
172KernelVersion:	6.0
173Contact:	Hannes Reinecke <hare@suse.de>
174Description:
175		dhchap_secret: Shows or sets the host DH-HMAC-CHAP secret
176		for this controller. Reading returns "none" if not set.
177		Writing must use the "DHHC-1:" key format and triggers
178		re-authentication.
179
180		dhchap_ctrl_secret: Shows or sets the controller
181		DH-HMAC-CHAP secret for bidirectional authentication.
182		Same format as dhchap_secret.
183
184		Only available when CONFIG_NVME_HOST_AUTH is enabled and
185		for fabrics controllers.
186
187What:		/sys/class/nvme/nvmeX/tls_key
188Date:		August 2023
189KernelVersion:	6.7
190Contact:	Hannes Reinecke <hare@suse.de>
191Description:
192		Shows the serial of the currently active TLS PSK as hex.
193		Returns empty if no TLS key is active. Only available for
194		TCP controllers with TLS or secure concatenation enabled
195		(CONFIG_NVME_TCP_TLS).
196
197What:		/sys/class/nvme/nvmeX/tls_configured_key
198Date:		July 2024
199KernelVersion:	6.12
200Contact:	Hannes Reinecke <hare@kernel.org>
201Description:
202		Shows the serial of the configured TLS key. Writing 0
203		triggers a PSK reauthentication (REPLACETLSPSK) with
204		the target. After reauthentication the returned serial
205		will be the new key. Only available for TCP controllers
206		with secure concatenation enabled (CONFIG_NVME_TCP_TLS).
207
208What:		/sys/class/nvme/nvmeX/tls_keyring
209Date:		July 2024
210KernelVersion:	6.12
211Contact:	Hannes Reinecke <hare@kernel.org>
212Description:
213		Shows the TLS keyring description. Only available for TCP
214		controllers with a keyring configured (CONFIG_NVME_TCP_TLS).
215
216What:		/sys/class/nvme/nvmeX/tls_mode
217Date:		April 2026
218KernelVersion:	7.1
219Contact:	Daniel Wagner <wagi@kernel.org>
220Description:
221		Shows the TLS mode: "tls" for direct TLS or "concat" for
222		secure concatenation. Only available for TCP controllers
223		with TLS or secure concatenation enabled
224		(CONFIG_NVME_TCP_TLS).
225
226What:		/sys/class/nvme/nvmeX/passthru_err_log_enabled
227Date:		January 2024
228KernelVersion:	6.8
229Contact:	Alan Adamson <alan.adamson@oracle.com>
230Description:
231		Shows or sets whether admin passthrough error logging is
232		enabled for this controller. Reading returns "on" or "off".
233		Writing accepts a boolean value.
234
235What:		/sys/class/nvme/nvmeX/quirks
236Date:		November 2025
237KernelVersion:	7.0
238Contact:	Maurizio Lombardi <mlombard@redhat.com>
239Description:
240		Shows the active quirk names for this controller, one per
241		line. Shows "none" if no quirks are active.
242
243What:		/sys/class/nvme/nvmeX/admin_timeout
244What:		/sys/class/nvme/nvmeX/io_timeout
245Date:		May 2026
246KernelVersion:	7.2
247Contact:	Maurizio Lombardi <mlombard@redhat.com>
248Description:
249		admin_timeout: Shows or sets the admin command timeout in
250		milliseconds.
251
252		io_timeout: Shows or sets the I/O command timeout in
253		milliseconds. Changes are propagated to all namespace
254		request queues.
255
256		The value must be nonzero. Only writable after the
257		controller has been started at least once.
258
259What:		/sys/block/nvmeXnY/uuid
260What:		/sys/block/nvmeXnY/eui
261What:		/sys/block/nvmeXnY/nsid
262Date:		December 2015
263KernelVersion:	4.5
264Contact:	Keith Busch <kbusch@kernel.org>
265Description:
266		Namespace identification attributes.
267
268		uuid: Shows the UUID for this namespace. Falls back to
269		showing the NGUID for backward compatibility. Hidden if
270		both are all zeros.
271
272		eui: Shows the IEEE Extended Unique Identifier (EUI-64).
273		Hidden if all zeros.
274
275		nsid: Shows the namespace identifier (NSID).
276
277What:		/sys/block/nvmeXnY/wwid
278Date:		February 2016
279KernelVersion:	4.6
280Contact:	Keith Busch <kbusch@kernel.org>
281Description:
282		Shows the World Wide Identifier for this namespace. The
283		format depends on available identifiers (in priority
284		order): "uuid.{UUID}", "eui.{NGUID}", "eui.{EUI64}", or
285		"nvme.{VID}-{SERIAL}-{MODEL}-{NSID}".
286
287What:		/sys/block/nvmeXnY/nguid
288Date:		June 2017
289KernelVersion:	4.13
290Contact:	Johannes Thumshirn <jthumshirn@suse.de>
291Description:
292		Shows the Namespace Globally Unique Identifier (NGUID).
293		Hidden if the NGUID is all zeros.
294
295What:		/sys/block/nvmeXcYnZ/ana_grpid
296What:		/sys/block/nvmeXcYnZ/ana_state
297Date:		May 2018
298KernelVersion:	4.19
299Contact:	Christoph Hellwig <hch@lst.de>
300Description:
301		ana_grpid: Shows the ANA Group ID for this namespace
302		path device.
303
304		ana_state: Shows the ANA state. Possible values:
305		"optimized", "non-optimized", "inaccessible",
306		"persistent-loss", "change".
307
308		Only visible when the controller supports ANA.
309		Requires CONFIG_NVME_MULTIPATH.
310
311What:		/sys/block/nvmeXcYnZ/queue_depth
312Date:		June 2024
313KernelVersion:	6.11
314Contact:	Thomas Song <tsong@purestorage.com>
315Description:
316		Shows the current active I/O count on this path's
317		controller. Returns empty if iopolicy is not "queue-depth".
318		Requires CONFIG_NVME_MULTIPATH.
319
320What:		/sys/block/nvmeXcYnZ/numa_nodes
321Date:		January 2025
322KernelVersion:	6.15
323Contact:	Nilay Shroff <nilay@linux.ibm.com>
324Description:
325		Shows the NUMA node mask for which this path is the
326		currently selected path. Returns empty if iopolicy is not
327		"numa". Requires CONFIG_NVME_MULTIPATH.
328
329What:		/sys/block/nvmeXnY/delayed_removal_secs
330Date:		May 2025
331KernelVersion:	6.16
332Contact:	Nilay Shroff <nilay@linux.ibm.com>
333Description:
334		Shows or sets the delayed removal timeout in seconds for
335		the multipath head device. When nonzero, I/O is queued
336		instead of failed when all paths are gone, and head removal
337		is deferred. Only visible on multipath head devices.
338		Requires CONFIG_NVME_MULTIPATH.
339
340What:		/sys/block/nvmeXnY/csi
341What:		/sys/block/nvmeXnY/metadata_bytes
342What:		/sys/block/nvmeXnY/nuse
343Date:		December 2023
344KernelVersion:	6.8
345Contact:	Daniel Wagner <dwagner@suse.de>
346Description:
347		csi: Shows the Command Set Identifier for this namespace.
348
349		metadata_bytes: Shows the metadata size in bytes.
350
351		nuse: Shows the Namespace Utilization (NUSE) value. Reading
352		triggers an Identify Namespace command to refresh the
353		value (rate-limited to avoid excessive commands).
354
355What:		/sys/block/nvmeXnY/passthru_err_log_enabled
356Date:		January 2024
357KernelVersion:	6.8
358Contact:	Alan Adamson <alan.adamson@oracle.com>
359Description:
360		Shows or sets whether I/O passthrough error logging is
361		enabled for this namespace. Reading returns "on" or "off".
362		Writing accepts a boolean value.
363
364What:		/sys/class/nvme/nvmeX/diag/command_error_count
365What:		/sys/class/nvme/nvmeX/diag/reset_count
366What:		/sys/class/nvme/nvmeX/diag/reconnect_count
367Date:		May 2026
368KernelVersion:	7.2
369Contact:	Nilay Shroff <nilay@linux.ibm.com>
370Description:
371		Controller diagnostic counters.
372
373		command_error_count: Admin command error counter.
374
375		reset_count: Controller reset counter.
376
377		reconnect_count: Accumulated reconnect counter. Only
378		available for fabrics controllers.
379
380		All counters can be reset by writing a value.
381
382What:		/sys/block/nvmeXnY/diag/command_retries_count
383What:		/sys/block/nvmeXnY/diag/command_error_count
384Date:		May 2026
385KernelVersion:	7.2
386Contact:	Nilay Shroff <nilay@linux.ibm.com>
387Description:
388		Namespace diagnostic counters for non-multipath
389		configurations (when CONFIG_NVME_MULTIPATH is not
390		configured).
391
392		command_retries_count: I/O command retry counter.
393
394		command_error_count: I/O command error counter.
395
396		All counters can be reset by writing any value.
397
398What:		/sys/block/nvmeXcYnZ/diag/command_retries_count
399What:		/sys/block/nvmeXcYnZ/diag/command_error_count
400What:		/sys/block/nvmeXcYnZ/diag/multipath_failover_count
401What:		/sys/block/nvmeXnY/diag/io_requeue_no_usable_path_count
402What:		/sys/block/nvmeXnY/diag/io_fail_no_available_path_count
403Date:		May 2026
404KernelVersion:	7.2
405Contact:	Nilay Shroff <nilay@linux.ibm.com>
406Description:
407		Namespace diagnostic counters for multipath
408		configurations (when CONFIG_NVME_MULTIPATH is
409		configured).
410
411		command_retries_count: I/O command retry counter.
412
413		command_error_count: I/O command error counter.
414
415		multipath_failover_count: Multipath failover counter.
416
417		io_requeue_no_usable_path_count: Counter of I/Os
418		requeued because no usable path was available.
419
420		io_fail_no_available_path_count: Counter of I/Os
421		failed because no available path existed.
422
423		All counters can be reset by writing any value.
424
425What:		/sys/class/nvme-subsystem/nvme-subsysX/model
426What:		/sys/class/nvme-subsystem/nvme-subsysX/serial
427What:		/sys/class/nvme-subsystem/nvme-subsysX/firmware_rev
428What:		/sys/class/nvme-subsystem/nvme-subsysX/subsysnqn
429Date:		November 2017
430KernelVersion:	4.15
431Contact:	Hannes Reinecke <hare@suse.de>
432Description:
433		Shows the model, serial number, firmware revision, or NQN
434		of the NVMe subsystem.
435
436What:		/sys/class/nvme-subsystem/nvme-subsysX/iopolicy
437Date:		February 2019
438KernelVersion:	5.1
439Contact:	Hannes Reinecke <hare@suse.de>
440Description:
441		Shows or sets the multipath I/O path selection policy for
442		this subsystem. Accepted values: "numa", "round-robin",
443		"queue-depth". Changing the policy clears all current path
444		selections. Only available when CONFIG_NVME_MULTIPATH is
445		enabled.
446
447What:		/sys/class/nvme-subsystem/nvme-subsysX/subsystype
448Date:		September 2021
449KernelVersion:	5.16
450Contact:	Hannes Reinecke <hare@suse.de>
451Description:
452		Shows the subsystem type. Possible values: "discovery",
453		"nvm", "reserved".
454