Current File : //lib/python3.9/site-packages/sos/report/plugins/pmem.py
# 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 :
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat