93 lines
3.3 KiB
Python
93 lines
3.3 KiB
Python
# This file is part of the sos project: https://github.com/sosreport/sos
|
|
#
|
|
# This copyrighted material is made available to anyone wishing to use,
|
|
# modify, copy, or redistribute it subject to the terms and conditions of
|
|
# version 2 of the GNU General Public License.
|
|
#
|
|
# See the LICENSE file in the source distribution for further information.
|
|
|
|
from sos.report.plugins import Plugin, IndependentPlugin
|
|
|
|
|
|
class PMem(Plugin, IndependentPlugin):
|
|
"""This plugin collects data from Persistent Memory devices,
|
|
commonly referred to as NVDIMM's or Storage Class Memory (SCM)
|
|
"""
|
|
|
|
short_desc = 'Persistent Memory Devices'
|
|
plugin_name = 'pmem'
|
|
profiles = ('storage', 'hardware', 'memory')
|
|
# Utilities can be installed by package or self compiled
|
|
packages = ('ndctl', 'daxctl', 'ipmctl')
|
|
commands = ('ndctl', 'daxctl', 'ipmctl')
|
|
|
|
def setup(self):
|
|
# Copy the contents of the /etc/ndctl & /var/log/ipmctl
|
|
# directories and /etc/ipmctl.conf file
|
|
self.add_copy_spec([
|
|
"/etc/ndctl",
|
|
"/etc/ipmctl.conf",
|
|
"/var/log/ipmctl"
|
|
])
|
|
|
|
# Use the ndctl-list(1) command to collect:
|
|
# -i Include idle (not enabled) devices in the listing
|
|
# -vvv Increase verbosity of the output
|
|
# -B Include bus info in the listing
|
|
# -D Include dimm info in the listing
|
|
# -F Include dimm firmware info in the listing
|
|
# -H Include dimm health info in the listing
|
|
# -M Include media errors (badblocks) in the listing
|
|
# -N Include namespace info in the listing
|
|
# -R Include region info in the listing
|
|
# -X Include device-dax info in the listing
|
|
#
|
|
# Output is JSON formatted
|
|
self.add_cmd_output([
|
|
"ndctl --version",
|
|
"ndctl list -vvv",
|
|
"ndctl list -iBDFHMNRX",
|
|
"ndctl read-labels -j all"
|
|
])
|
|
|
|
# Use the daxctl-list(1) command to collect:
|
|
# -i Include idle (not enabled / zero-sized) devices in the listing
|
|
# -D Include device-dax instance info in the listing
|
|
# -R Include region info in the listing
|
|
#
|
|
# Output is JSON formatted
|
|
self.add_cmd_output([
|
|
"daxctl list",
|
|
"daxctl list -iDR"
|
|
])
|
|
|
|
# Use the ipmctl(1) command to collect data from
|
|
# Intel(R) Optane(TM) Persistent Memory Modules.
|
|
self.add_cmd_output([
|
|
"ipmctl version",
|
|
"ipmctl show -cap",
|
|
"ipmctl show -cel",
|
|
"ipmctl show -dimm",
|
|
"ipmctl show -a -dimm",
|
|
"ipmctl show -dimm -pcd",
|
|
"ipmctl show -dimm -performance",
|
|
"ipmctl show -error Thermal -dimm",
|
|
"ipmctl show -error Media -dimm",
|
|
"ipmctl show -firmware",
|
|
"ipmctl show -goal",
|
|
"ipmctl show -memoryresources",
|
|
"ipmctl show -performance",
|
|
"ipmctl show -preferences",
|
|
"ipmctl show -region",
|
|
"ipmctl show -sensor",
|
|
"ipmctl show -a -sensor",
|
|
"ipmctl show -socket",
|
|
"ipmctl show -system",
|
|
"ipmctl show -system -capabilities",
|
|
"ipmctl show -a -system -capabilities",
|
|
"ipmctl show -topology",
|
|
"ipmctl show -a -topology"
|
|
])
|
|
|
|
# vim: set et ts=4 sw=4 :
|