1NDCTL-LIST(1) NDCTL-LIST(1)
2
3
4
6 ndctl-list - dump the platform nvdimm device topology and attributes in
7 json
8
10 ndctl list [<options>]
11
12 Walk all the nvdimm buses in the system and list all attached devices
13 along with some of their major attributes.
14
15 Options can be specified to limit the output to devices of a certain
16 class. Where the classes are buses, dimms, regions, and namespaces. By
17 default, ndctl list with no options is equivalent to:
18
19 ndctl list --namespaces --bus=all --region=all
20
22 # ndctl list --buses --namespaces
23
24 {
25 "provider":"nfit_test.1",
26 "dev":"ndbus2",
27 "namespaces":[
28 {
29 "dev":"namespace9.0",
30 "mode":"raw",
31 "size":33554432,
32 "blockdev":"pmem9"
33 }
34 ]
35 }
36 {
37 "provider":"nfit_test.0",
38 "dev":"ndbus1"
39 }
40 {
41 "provider":"e820",
42 "dev":"ndbus0",
43 "namespaces":[
44 {
45 "dev":"namespace0.0",
46 "mode":"fsdax",
47 "size":8589934592,
48 "blockdev":"pmem0"
49 }
50 ]
51 }
52
54 -r, --region=
55 A regionX device name, or a region id number. Restrict the
56 operation to the specified region(s). The keyword all can be
57 specified to indicate the lack of any restriction, however this is
58 the same as not supplying a --region option at all.
59
60 -b, --bus=
61 A bus id number, or a provider string (e.g. "ACPI.NFIT"). Restrict
62 the operation to the specified bus(es). The keyword all can be
63 specified to indicate the lack of any restriction, however this is
64 the same as not supplying a --bus option at all.
65
66 -d, --dimm=
67 An nmemX device name, or dimm id number. The dimm id number here is
68 X in nmemX. Filter listing by devices that reference the given
69 dimm. For example to see all namespaces comprised of storage
70 capacity on nmem0:
71
72 # ndctl list --dimm=nmem0 --namespaces
73
74 -n, --namespace=
75 An namespaceX.Y device name, or namespace region plus id tuple X.Y.
76 Limit the namespace list to the single identified device if
77 present.
78
79 -m, --mode=
80 Filter listing by the mode (raw, fsdax, sector or devdax) of the
81 namespace(s).
82
83 -U, --numa-node=
84 Filter listing by numa node
85
86 -B, --buses
87 Include bus info in the listing
88
89 -D, --dimms
90 Include dimm info in the listing
91
92 {
93 "dev":"nmem0",
94 "id":"cdab-0a-07e0-ffffffff",
95 "handle":0,
96 "phys_id":0,
97 "security:":"disabled"
98 }
99
100 -H, --health
101 Include dimm health info in the listing. For example:
102
103 {
104 "dev":"nmem0",
105 "health":{
106 "health_state":"non-critical",
107 "temperature_celsius":23,
108 "spares_percentage":75,
109 "alarm_temperature":true,
110 "alarm_spares":true,
111 "temperature_threshold":40,
112 "spares_threshold":5,
113 "life_used_percentage":5,
114 "shutdown_state":"clean"
115 }
116 }
117
118 -F, --firmware
119 Include firmware info in the listing, including the state and
120 capability of runtime firmware activation:
121
122 # ndctl list -BDF
123 [
124 {
125 "provider":"nfit_test.0",
126 "dev":"ndbus2",
127 "scrub_state":"idle",
128 "firmware":{
129 "activate_method":"suspend",
130 "activate_state":"idle"
131 },
132 "dimms":[
133 {
134 "dev":"nmem1",
135 "id":"cdab-0a-07e0-ffffffff",
136 "handle":0,
137 "phys_id":0,
138 "security":"disabled",
139 "firmware":{
140 "current_version":0,
141 "can_update":true
142 }
143 },
144 ...
145 ]
146
147 -X, --device-dax
148 Include device-dax ("daxregion") details when a namespace is in
149 "devdax" mode.
150
151 {
152 "dev":"namespace0.0",
153 "mode":"devdax",
154 "size":4225761280,
155 "uuid":"18ae1bbb-bb62-4efc-86df-4a5caacb5dcc",
156 "daxregion":{
157 "id":0,
158 "size":4225761280,
159 "align":2097152,
160 "devices":[
161 {
162 "chardev":"dax0.0",
163 "size":4225761280
164 }
165 ]
166 }
167 }
168
169 -R, --regions
170 Include region info in the listing
171
172 -N, --namespaces
173 Include namespace info in the listing. Namespace info is listed by
174 default if no other options are specified to the command.
175
176 -i, --idle
177 Include idle (not enabled) devices in the listing
178
179 -c, --configured
180 Include configured devices (non-zero sized namespaces) regardless
181 of whether they are enabled, or not. Other devices besides
182 namespaces are always considered "configured".
183
184 -C, --capabilities
185 Include region capabilities in the listing, i.e. supported
186 namespace modes and variable properties like sector sizes and
187 alignments.
188
189 -M, --media-errors
190 Include media errors (badblocks) in the listing. Note that the
191 badblock_count property is included in the listing by default when
192 the count is non-zero, otherwise it is hidden. Also, if the
193 namespace is in sector mode the badblocks listing is not included
194 and badblock_count property may include blocks that are located in
195 metadata, or unused capacity in the namespace. Convert a sector
196 namespace into raw mode to list precise badblocks offsets.
197
198 {
199 "dev":"namespace7.0",
200 "mode":"raw",
201 "size":33554432,
202 "blockdev":"pmem7",
203 "badblock_count":17,
204 "badblocks":[
205 {
206 "offset":4,
207 "length":1
208 },
209 {
210 "offset":32768,
211 "length":8
212 },
213 {
214 "offset":65528,
215 "length":8
216 }
217 ]
218 }
219
220 -v, --verbose
221 Increase verbosity of the output. This can be specified multiple
222 times to be even more verbose on the informational and
223 miscellaneous output, and can be used to override omitted flags for
224 showing specific information.
225
226
227 • -v In addition to the enabled namespaces default output, show
228 the numa_node, raw_uuid, and bad block media errors.
229
230 • -vv Everything -v provides, plus automatically enable --dimms,
231 --buses, and --regions.
232
233 • -vvv Everything -vv provides, plus --health, --capabilities,
234 --idle, and --firmware. :: The verbosity can also be scoped by
235 the object type. For example to just list regions with
236 capabilities and media error info.
237
238 # ndctl list -Ru -vvv -r 0
239 {
240 "dev":"region0",
241 "size":"4.00 GiB (4.29 GB)",
242 "available_size":0,
243 "max_available_extent":0,
244 "type":"pmem",
245 "numa_node":0,
246 "target_node":2,
247 "capabilities":[
248 {
249 "mode":"sector",
250 "sector_sizes":[
251 512,
252 520,
253 528,
254 4096,
255 4104,
256 4160,
257 4224
258 ]
259 },
260 {
261 "mode":"fsdax",
262 "alignments":[
263 4096,
264 2097152,
265 1073741824
266 ]
267 },
268 {
269 "mode":"devdax",
270 "alignments":[
271 4096,
272 2097152,
273 1073741824
274 ]
275 }
276 ],
277 "persistence_domain":"unknown"
278 }
279
280 -u, --human
281 Format numbers representing storage sizes, or offsets as human
282 readable strings with units instead of the default machine-friendly
283 raw-integer data. Convert other numeric fields into hexadecimal
284 strings.
285
286 # ndctl list --region=7
287 {
288 "dev":"region7",
289 "size":67108864,
290 "available_size":67108864,
291 "type":"pmem",
292 "iset_id":-6382611090938810793,
293 "badblock_count":8
294 }
295
296 # ndctl list --human --region=7
297 {
298 "dev":"region7",
299 "size":"64.00 MiB (67.11 MB)",
300 "available_size":"64.00 MiB (67.11 MB)",
301 "type":"pmem",
302 "iset_id":"0xa76c6907811fae57",
303 "badblock_count":8
304 }
305
307 NDCTL_LIST_LINT
308 A bug in the "ndctl list" output needs to be fixed with care for
309 other tooling that may have developed a dependency on the buggy
310 behavior. The NDCTL_LIST_LINT variable is an opt-in to apply fixes,
311 and not regress previously shipped behavior by default. This
312 environment variable applies the following fixups:
313
314 • Fix "ndctl list -Rv" to only show region objects and not
315 include namespace objects. ::
316
318 Copyright © 2016 - 2022, Intel Corporation. License GPLv2: GNU GPL
319 version 2 http://gnu.org/licenses/gpl.html. This is free software: you
320 are free to change and redistribute it. There is NO WARRANTY, to the
321 extent permitted by law.
322
324 linkndctl:ndctl-create-namespace[1]
325
326
327
328 01/13/2023 NDCTL-LIST(1)