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