forked from Minki/linux
2d02bf835e
Update papr_scm.c to query dimm performance statistics from PHYP via H_SCM_PERFORMANCE_STATS hcall and export them to user-space as PAPR specific NVDIMM attribute 'perf_stats' in sysfs. The patch also provide a sysfs ABI documentation for the stats being reported and their meanings. During NVDIMM probe time in papr_scm_nvdimm_init() a special variant of H_SCM_PERFORMANCE_STATS hcall is issued to check if collection of performance statistics is supported or not. If successful then a PHYP returns a maximum possible buffer length needed to read all performance stats. This returned value is stored in a per-nvdimm attribute 'stat_buffer_len'. The layout of request buffer for reading NVDIMM performance stats from PHYP is defined in 'struct papr_scm_perf_stats' and 'struct papr_scm_perf_stat'. These structs are used in newly introduced drc_pmem_query_stats() that issues the H_SCM_PERFORMANCE_STATS hcall. The sysfs access function perf_stats_show() uses value 'stat_buffer_len' to allocate a buffer large enough to hold all possible NVDIMM performance stats and passes it to drc_pmem_query_stats() to populate. Finally statistics reported in the buffer are formatted into the sysfs access function output buffer. Signed-off-by: Vaibhav Jain <vaibhav@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20200731064153.182203-2-vaibhav@linux.ibm.com
54 lines
2.1 KiB
Plaintext
54 lines
2.1 KiB
Plaintext
What: /sys/bus/nd/devices/nmemX/papr/flags
|
|
Date: Apr, 2020
|
|
KernelVersion: v5.8
|
|
Contact: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, linux-nvdimm@lists.01.org,
|
|
Description:
|
|
(RO) Report flags indicating various states of a
|
|
papr-pmem NVDIMM device. Each flag maps to a one or
|
|
more bits set in the dimm-health-bitmap retrieved in
|
|
response to H_SCM_HEALTH hcall. The details of the bit
|
|
flags returned in response to this hcall is available
|
|
at 'Documentation/powerpc/papr_hcalls.rst' . Below are
|
|
the flags reported in this sysfs file:
|
|
|
|
* "not_armed" : Indicates that NVDIMM contents will not
|
|
survive a power cycle.
|
|
* "flush_fail" : Indicates that NVDIMM contents
|
|
couldn't be flushed during last
|
|
shut-down event.
|
|
* "restore_fail": Indicates that NVDIMM contents
|
|
couldn't be restored during NVDIMM
|
|
initialization.
|
|
* "encrypted" : NVDIMM contents are encrypted.
|
|
* "smart_notify": There is health event for the NVDIMM.
|
|
* "scrubbed" : Indicating that contents of the
|
|
NVDIMM have been scrubbed.
|
|
* "locked" : Indicating that NVDIMM contents cant
|
|
be modified until next power cycle.
|
|
|
|
What: /sys/bus/nd/devices/nmemX/papr/perf_stats
|
|
Date: May, 2020
|
|
KernelVersion: v5.9
|
|
Contact: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, linux-nvdimm@lists.01.org,
|
|
Description:
|
|
(RO) Report various performance stats related to papr-scm NVDIMM
|
|
device. Each stat is reported on a new line with each line
|
|
composed of a stat-identifier followed by it value. Below are
|
|
currently known dimm performance stats which are reported:
|
|
|
|
* "CtlResCt" : Controller Reset Count
|
|
* "CtlResTm" : Controller Reset Elapsed Time
|
|
* "PonSecs " : Power-on Seconds
|
|
* "MemLife " : Life Remaining
|
|
* "CritRscU" : Critical Resource Utilization
|
|
* "HostLCnt" : Host Load Count
|
|
* "HostSCnt" : Host Store Count
|
|
* "HostSDur" : Host Store Duration
|
|
* "HostLDur" : Host Load Duration
|
|
* "MedRCnt " : Media Read Count
|
|
* "MedWCnt " : Media Write Count
|
|
* "MedRDur " : Media Read Duration
|
|
* "MedWDur " : Media Write Duration
|
|
* "CchRHCnt" : Cache Read Hit Count
|
|
* "CchWHCnt" : Cache Write Hit Count
|
|
* "FastWCnt" : Fast Write Count |