blob: 2abc572a6ad5632776458c20cdf2780c2bcab4cc [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0
ndctl-list(1)
=============
NAME
----
ndctl-list - dump the platform nvdimm device topology and attributes in json
SYNOPSIS
--------
[verse]
'ndctl list' [<options>]
Walk all the nvdimm buses in the system and list all attached devices
along with some of their major attributes.
Options can be specified to limit the output to devices of a certain
class. Where the classes are buses, dimms, regions, and namespaces. By
default, 'ndctl list' with no options is equivalent to:
[verse]
ndctl list --namespaces --bus=all --region=all
EXAMPLE
-------
[verse]
# ndctl list --buses --namespaces
["literal"]
{
"provider":"nfit_test.1",
"dev":"ndbus2",
"namespaces":[
{
"dev":"namespace9.0",
"mode":"raw",
"size":33554432,
"blockdev":"pmem9"
}
]
}
{
"provider":"nfit_test.0",
"dev":"ndbus1"
}
{
"provider":"e820",
"dev":"ndbus0",
"namespaces":[
{
"dev":"namespace0.0",
"mode":"fsdax",
"size":8589934592,
"blockdev":"pmem0"
}
]
}
OPTIONS
-------
-r::
--region=::
include::xable-region-options.txt[]
-d::
--dimm=::
An 'nmemX' device name, or dimm id number. Filter listing by
devices that reference the given dimm. For example to see all
namespaces comprised of storage capacity on nmem0:
[verse]
# ndctl list --dimm=nmem0 --namespaces
-n::
--namespace=::
An 'namespaceX.Y' device name, or namespace region plus id tuple
'X.Y'. Limit the namespace list to the single identified device
if present.
-t::
--type=::
Filter listing by region type ('pmem' or 'blk')
-m::
--mode=::
Filter listing by the mode ('raw', 'fsdax', 'sector' or 'devdax')
of the namespace(s).
-U::
--numa-node=::
Filter listing by numa node
-B::
--buses::
Include bus info in the listing
-D::
--dimms::
Include dimm info in the listing
-H::
--health::
Include dimm health info in the listing. For example:
[verse]
{
"dev":"nmem0",
"health":{
"health_state":"non-critical",
"temperature_celsius":23,
"spares_percentage":75,
"alarm_temperature":true,
"alarm_spares":true,
"temperature_threshold":40,
"spares_threshold":5,
"life_used_percentage":5,
"shutdown_state":"clean"
}
}
-F::
--firmware::
Include dimm firmware info in the listing. For example:
[verse]
{
"dev":"nmem0",
"firmware":{
"current_version":0,
"next_version":1,
"need_powercycle":true
}
}
-X::
--device-dax::
Include device-dax ("daxregion") details when a namespace is in
"devdax" mode.
[verse]
{
"dev":"namespace0.0",
"mode":"devdax",
"size":4225761280,
"uuid":"18ae1bbb-bb62-4efc-86df-4a5caacb5dcc",
"daxregion":{
"id":0,
"size":4225761280,
"align":2097152,
"devices":[
{
"chardev":"dax0.0",
"size":4225761280
}
]
}
}
-R::
--regions::
Include region info in the listing
-N::
--namespaces::
Include namespace info in the listing. Namespace info is
listed by default if no other options are specified to the command.
-i::
--idle::
Include idle (not enabled) devices in the listing
-M::
--media-errors::
Include media errors (badblocks) in the listing. Note that the
'badblock_count' property is included in the listing by default
when the count is non-zero, otherwise it is hidden. Also, if the
namespace is in 'sector' mode the 'badblocks' listing is not
included and 'badblock_count' property may include blocks that are
located in metadata, or unused capacity in the namespace. Convert
a 'sector' namespace into 'raw' mode to list precise 'badblocks'
offsets.
[verse]
{
"dev":"namespace7.0",
"mode":"raw",
"size":33554432,
"blockdev":"pmem7",
"badblock_count":17,
"badblocks":[
{
"offset":4,
"length":1
},
{
"offset":32768,
"length":8
},
{
"offset":65528,
"length":8
}
]
}
include::human-option.txt[]
[verse]
# ndctl list --region=7
{
"dev":"region7",
"size":67108864,
"available_size":67108864,
"type":"pmem",
"iset_id":-6382611090938810793,
"badblock_count":8
}
[verse]
# ndctl list --human --region=7
{
"dev":"region7",
"size":"64.00 MiB (67.11 MB)",
"available_size":"64.00 MiB (67.11 MB)",
"type":"pmem",
"iset_id":"0xa76c6907811fae57",
"badblock_count":8
}
include::../copyright.txt[]
SEE ALSO
--------
linkndctl:ndctl-create-namespace[1]