1NDCTL-LIST(1)                    ndctl Manual                    NDCTL-LIST(1)
2
3
4

NAME

6       ndctl-list - dump the platform nvdimm device topology and attributes in
7       json
8

SYNOPSIS

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

EXAMPLE

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

OPTIONS

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

ENVIRONMENT VARIABLES

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

SEE ALSO

315       ndctl-create-namespace(1)
316
317
318
319ndctl                             2020-03-24                     NDCTL-LIST(1)
Impressum