summaryrefslogtreecommitdiff
path: root/Documentation/ABI/stable/sysfs-nvme
blob: a2f5d0710db40b8a9f09730f7291ec99cb7d73e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
What:		/sys/class/nvme/nvmeX/model
What:		/sys/class/nvme/nvmeX/serial
What:		/sys/class/nvme/nvmeX/firmware_rev
Date:		January 2016
KernelVersion:	4.5
Contact:	Keith Busch <kbusch@kernel.org>
Description:
		Shows the model, serial number, or firmware revision string
		of the NVMe controller, as reported in the Identify
		Controller data structure.

What:		/sys/class/nvme/nvmeX/cntlid
Date:		February 2016
KernelVersion:	4.6
Contact:	Ming Lin <ming.l@ssi.samsung.com>
Description:
		Shows the controller identifier assigned by the NVMe
		subsystem.

What:		/sys/class/nvme/nvmeX/cntrltype
What:		/sys/class/nvme/nvmeX/dctype
Date:		February 2022
KernelVersion:	5.18
Contact:	Martin Belanger <martin.belanger@dell.com>
Description:
		cntrltype: Shows the controller type. Possible values: "io",
		"discovery", "admin", "reserved".

		dctype: Shows the discovery controller type. Possible values:
		"none", "ddc", "cdc", "reserved".

What:		/sys/class/nvme/nvmeX/reset_controller
Date:		November 2015
KernelVersion:	4.5
Contact:	Christoph Hellwig <hch@lst.de>
Description:
		Write-only. Writing any value triggers a synchronous
		controller reset.

What:		/sys/class/nvme/nvmeX/rescan_controller
Date:		April 2016
KernelVersion:	4.7
Contact:	Keith Busch <kbusch@kernel.org>
Description:
		Write-only. Writing any value triggers a namespace rescan
		on this controller.

What:		/sys/class/nvme/nvmeX/transport
What:		/sys/class/nvme/nvmeX/subsysnqn
What:		/sys/class/nvme/nvmeX/address
What:		/sys/class/nvme/nvmeX/delete_controller
What:		/sys/class/nvme/nvmeX/reconnect_delay
What:		/sys/class/nvme/nvmeX/ctrl_loss_tmo
Date:		June 2016
KernelVersion:	4.8
Contact:	Ming Lin <ming.l@ssi.samsung.com>
Description:
		Fabrics controller attributes added with NVMe-oF support.

		transport: Shows the transport type string. Possible values:
		"pcie", "tcp", "rdma", "fc", "loop".

		subsysnqn: Shows the NVMe Qualified Name (NQN) of the
		subsystem this controller belongs to.

		address: Shows the transport-specific address string. Only
		available for fabrics controllers.

		delete_controller: Write-only. Triggers deletion of this
		fabrics controller.

		reconnect_delay: Shows or sets the reconnect delay in
		seconds. Reading returns the delay value, or "off" if
		disabled.

		ctrl_loss_tmo: Shows or sets the controller loss timeout in
		seconds. Reading returns the timeout value, or "off" if
		infinite reconnects are allowed. Writing a negative value
		disables the timeout.

What:		/sys/class/nvme/nvmeX/hostnqn
What:		/sys/class/nvme/nvmeX/hostid
Date:		February 2020
KernelVersion:	5.7
Contact:	Sagi Grimberg <sagi@grimberg.me>
Description:
		hostnqn: Shows the host NQN used by this fabrics controller.

		hostid: Shows the host identifier (UUID format) used by this
		fabrics controller.

		Only available for fabrics controllers.

What:		/sys/class/nvme/nvmeX/fast_io_fail_tmo
Date:		November 2020
KernelVersion:	5.11
Contact:	Victor Gladkov <Victor.Gladkov@kioxia.com>
Description:
		Shows or sets the fast I/O fail timeout in seconds. Reading
		returns the timeout value, or "off" if disabled. Writing a
		negative value disables the fast I/O fail. Only available
		for fabrics controllers.

What:		/sys/class/nvme/nvmeX/kato
Date:		April 2021
KernelVersion:	5.13
Contact:	Hannes Reinecke <hare@suse.de>
Description:
		Shows the Keep Alive Timeout value in milliseconds for
		this controller.

What:		/sys/class/nvme/nvmeX/cmb
Date:		October 2016
KernelVersion:	4.9
Contact:	Stephen Bates <sbates@raithlin.com>
Description:
		Shows the Controller Memory Buffer (CMB) register values
		in format "cmbloc : 0x%08x\ncmbsz  : 0x%08x\n". Only
		visible when the controller has a CMB (cmbsz != 0).
		PCI transport only.

What:		/sys/class/nvme/nvmeX/cmbloc
What:		/sys/class/nvme/nvmeX/cmbsz
What:		/sys/class/nvme/nvmeX/hmb
Date:		July 2021
KernelVersion:	5.15
Contact:	Keith Busch <kbusch@kernel.org>
Description:
		cmbloc: Shows the CMBLOC register value.

		cmbsz: Shows the CMBSZ register value.

		cmbloc and cmbsz are only visible when the controller has
		a CMB. PCI transport only.

		hmb: Shows or sets whether the Host Memory Buffer (HMB) is
		enabled. Reading returns 1 (enabled) or 0 (disabled).
		Writing 1 enables HMB; writing 0 disables it. Only
		visible when the controller supports HMB (hmpre != 0).
		PCI transport only.

What:		/sys/class/nvme/nvmeX/state
Date:		November 2016
KernelVersion:	4.11
Contact:	Sagi Grimberg <sagi@grimberg.me>
Description:
		Shows the current state of the controller. Possible values:
		"new", "live", "resetting", "connecting", "deleting",
		"deleting (no IO)", "dead".

What:		/sys/class/nvme/nvmeX/numa_node
Date:		November 2018
KernelVersion:	5.0
Contact:	Hannes Reinecke <hare@suse.de>
Description:
		Shows the NUMA node the controller is attached to.

What:		/sys/class/nvme/nvmeX/queue_count
What:		/sys/class/nvme/nvmeX/sqsize
Date:		September 2019
KernelVersion:	5.4
Contact:	James Smart <jsmart2021@gmail.com>
Description:
		queue_count: Shows the total number of queues (admin + I/O)
		for this controller.

		sqsize: Shows the submission queue size for this controller.

What:		/sys/class/nvme/nvmeX/dhchap_secret
What:		/sys/class/nvme/nvmeX/dhchap_ctrl_secret
Date:		June 2022
KernelVersion:	6.0
Contact:	Hannes Reinecke <hare@suse.de>
Description:
		dhchap_secret: Shows or sets the host DH-HMAC-CHAP secret
		for this controller. Reading returns "none" if not set.
		Writing must use the "DHHC-1:" key format and triggers
		re-authentication.

		dhchap_ctrl_secret: Shows or sets the controller
		DH-HMAC-CHAP secret for bidirectional authentication.
		Same format as dhchap_secret.

		Only available when CONFIG_NVME_HOST_AUTH is enabled and
		for fabrics controllers.

What:		/sys/class/nvme/nvmeX/tls_key
Date:		August 2023
KernelVersion:	6.7
Contact:	Hannes Reinecke <hare@suse.de>
Description:
		Shows the serial of the currently active TLS PSK as hex.
		Returns empty if no TLS key is active. Only available for
		TCP controllers with TLS or secure concatenation enabled
		(CONFIG_NVME_TCP_TLS).

What:		/sys/class/nvme/nvmeX/tls_configured_key
Date:		July 2024
KernelVersion:	6.12
Contact:	Hannes Reinecke <hare@kernel.org>
Description:
		Shows the serial of the configured TLS key. Writing 0
		triggers a PSK reauthentication (REPLACETLSPSK) with
		the target. After reauthentication the returned serial
		will be the new key. Only available for TCP controllers
		with secure concatenation enabled (CONFIG_NVME_TCP_TLS).

What:		/sys/class/nvme/nvmeX/tls_keyring
Date:		July 2024
KernelVersion:	6.12
Contact:	Hannes Reinecke <hare@kernel.org>
Description:
		Shows the TLS keyring description. Only available for TCP
		controllers with a keyring configured (CONFIG_NVME_TCP_TLS).

What:		/sys/class/nvme/nvmeX/tls_mode
Date:		April 2026
KernelVersion:	7.1
Contact:	Daniel Wagner <wagi@kernel.org>
Description:
		Shows the TLS mode: "tls" for direct TLS or "concat" for
		secure concatenation. Only available for TCP controllers
		with TLS or secure concatenation enabled
		(CONFIG_NVME_TCP_TLS).

What:		/sys/class/nvme/nvmeX/passthru_err_log_enabled
Date:		January 2024
KernelVersion:	6.8
Contact:	Alan Adamson <alan.adamson@oracle.com>
Description:
		Shows or sets whether admin passthrough error logging is
		enabled for this controller. Reading returns "on" or "off".
		Writing accepts a boolean value.

What:		/sys/class/nvme/nvmeX/quirks
Date:		November 2025
KernelVersion:	7.0
Contact:	Maurizio Lombardi <mlombard@redhat.com>
Description:
		Shows the active quirk names for this controller, one per
		line. Shows "none" if no quirks are active.

What:		/sys/class/nvme/nvmeX/admin_timeout
What:		/sys/class/nvme/nvmeX/io_timeout
Date:		May 2026
KernelVersion:	7.2
Contact:	Maurizio Lombardi <mlombard@redhat.com>
Description:
		admin_timeout: Shows or sets the admin command timeout in
		milliseconds.

		io_timeout: Shows or sets the I/O command timeout in
		milliseconds. Changes are propagated to all namespace
		request queues.

		The value must be nonzero. Only writable after the
		controller has been started at least once.

What:		/sys/block/nvmeXnY/uuid
What:		/sys/block/nvmeXnY/eui
What:		/sys/block/nvmeXnY/nsid
Date:		December 2015
KernelVersion:	4.5
Contact:	Keith Busch <kbusch@kernel.org>
Description:
		Namespace identification attributes.

		uuid: Shows the UUID for this namespace. Falls back to
		showing the NGUID for backward compatibility. Hidden if
		both are all zeros.

		eui: Shows the IEEE Extended Unique Identifier (EUI-64).
		Hidden if all zeros.

		nsid: Shows the namespace identifier (NSID).

What:		/sys/block/nvmeXnY/wwid
Date:		February 2016
KernelVersion:	4.6
Contact:	Keith Busch <kbusch@kernel.org>
Description:
		Shows the World Wide Identifier for this namespace. The
		format depends on available identifiers (in priority
		order): "uuid.{UUID}", "eui.{NGUID}", "eui.{EUI64}", or
		"nvme.{VID}-{SERIAL}-{MODEL}-{NSID}".

What:		/sys/block/nvmeXnY/nguid
Date:		June 2017
KernelVersion:	4.13
Contact:	Johannes Thumshirn <jthumshirn@suse.de>
Description:
		Shows the Namespace Globally Unique Identifier (NGUID).
		Hidden if the NGUID is all zeros.

What:		/sys/block/nvmeXcYnZ/ana_grpid
What:		/sys/block/nvmeXcYnZ/ana_state
Date:		May 2018
KernelVersion:	4.19
Contact:	Christoph Hellwig <hch@lst.de>
Description:
		ana_grpid: Shows the ANA Group ID for this namespace
		path device.

		ana_state: Shows the ANA state. Possible values:
		"optimized", "non-optimized", "inaccessible",
		"persistent-loss", "change".

		Only visible when the controller supports ANA.
		Requires CONFIG_NVME_MULTIPATH.

What:		/sys/block/nvmeXcYnZ/queue_depth
Date:		June 2024
KernelVersion:	6.11
Contact:	Thomas Song <tsong@purestorage.com>
Description:
		Shows the current active I/O count on this path's
		controller. Returns empty if iopolicy is not "queue-depth".
		Requires CONFIG_NVME_MULTIPATH.

What:		/sys/block/nvmeXcYnZ/numa_nodes
Date:		January 2025
KernelVersion:	6.15
Contact:	Nilay Shroff <nilay@linux.ibm.com>
Description:
		Shows the NUMA node mask for which this path is the
		currently selected path. Returns empty if iopolicy is not
		"numa". Requires CONFIG_NVME_MULTIPATH.

What:		/sys/block/nvmeXnY/delayed_removal_secs
Date:		May 2025
KernelVersion:	6.16
Contact:	Nilay Shroff <nilay@linux.ibm.com>
Description:
		Shows or sets the delayed removal timeout in seconds for
		the multipath head device. When nonzero, I/O is queued
		instead of failed when all paths are gone, and head removal
		is deferred. Only visible on multipath head devices.
		Requires CONFIG_NVME_MULTIPATH.

What:		/sys/block/nvmeXnY/csi
What:		/sys/block/nvmeXnY/metadata_bytes
What:		/sys/block/nvmeXnY/nuse
Date:		December 2023
KernelVersion:	6.8
Contact:	Daniel Wagner <dwagner@suse.de>
Description:
		csi: Shows the Command Set Identifier for this namespace.

		metadata_bytes: Shows the metadata size in bytes.

		nuse: Shows the Namespace Utilization (NUSE) value. Reading
		triggers an Identify Namespace command to refresh the
		value (rate-limited to avoid excessive commands).

What:		/sys/block/nvmeXnY/passthru_err_log_enabled
Date:		January 2024
KernelVersion:	6.8
Contact:	Alan Adamson <alan.adamson@oracle.com>
Description:
		Shows or sets whether I/O passthrough error logging is
		enabled for this namespace. Reading returns "on" or "off".
		Writing accepts a boolean value.

What:		/sys/class/nvme/nvmeX/diag/command_error_count
What:		/sys/class/nvme/nvmeX/diag/reset_count
What:		/sys/class/nvme/nvmeX/diag/reconnect_count
Date:		May 2026
KernelVersion:	7.2
Contact:	Nilay Shroff <nilay@linux.ibm.com>
Description:
		Controller diagnostic counters.

		command_error_count: Admin command error counter.

		reset_count: Controller reset counter.

		reconnect_count: Accumulated reconnect counter. Only
		available for fabrics controllers.

		All counters can be reset by writing a value.

What:		/sys/block/nvmeXnY/diag/command_retries_count
What:		/sys/block/nvmeXnY/diag/command_error_count
Date:		May 2026
KernelVersion:	7.2
Contact:	Nilay Shroff <nilay@linux.ibm.com>
Description:
		Namespace diagnostic counters for non-multipath
		configurations (when CONFIG_NVME_MULTIPATH is not
		configured).

		command_retries_count: I/O command retry counter.

		command_error_count: I/O command error counter.

		All counters can be reset by writing any value.

What:		/sys/block/nvmeXcYnZ/diag/command_retries_count
What:		/sys/block/nvmeXcYnZ/diag/command_error_count
What:		/sys/block/nvmeXcYnZ/diag/multipath_failover_count
What:		/sys/block/nvmeXnY/diag/io_requeue_no_usable_path_count
What:		/sys/block/nvmeXnY/diag/io_fail_no_available_path_count
Date:		May 2026
KernelVersion:	7.2
Contact:	Nilay Shroff <nilay@linux.ibm.com>
Description:
		Namespace diagnostic counters for multipath
		configurations (when CONFIG_NVME_MULTIPATH is
		configured).

		command_retries_count: I/O command retry counter.

		command_error_count: I/O command error counter.

		multipath_failover_count: Multipath failover counter.

		io_requeue_no_usable_path_count: Counter of I/Os
		requeued because no usable path was available.

		io_fail_no_available_path_count: Counter of I/Os
		failed because no available path existed.

		All counters can be reset by writing any value.

What:		/sys/class/nvme-subsystem/nvme-subsysX/model
What:		/sys/class/nvme-subsystem/nvme-subsysX/serial
What:		/sys/class/nvme-subsystem/nvme-subsysX/firmware_rev
What:		/sys/class/nvme-subsystem/nvme-subsysX/subsysnqn
Date:		November 2017
KernelVersion:	4.15
Contact:	Hannes Reinecke <hare@suse.de>
Description:
		Shows the model, serial number, firmware revision, or NQN
		of the NVMe subsystem.

What:		/sys/class/nvme-subsystem/nvme-subsysX/iopolicy
Date:		February 2019
KernelVersion:	5.1
Contact:	Hannes Reinecke <hare@suse.de>
Description:
		Shows or sets the multipath I/O path selection policy for
		this subsystem. Accepted values: "numa", "round-robin",
		"queue-depth". Changing the policy clears all current path
		selections. Only available when CONFIG_NVME_MULTIPATH is
		enabled.

What:		/sys/class/nvme-subsystem/nvme-subsysX/subsystype
Date:		September 2021
KernelVersion:	5.16
Contact:	Hannes Reinecke <hare@suse.de>
Description:
		Shows the subsystem type. Possible values: "discovery",
		"nvm", "reserved".