The patch-set proposes to add support for fetching and reporting performance statistics for PAPR compliant NVDIMMs as described in documentation for H_SCM_PERFORMANCE_STATS hcall Ref[1]. The patch-set also implements mechanisms to expose NVDIMM performance stats via sysfs and newly introduced PDSMs[2] for libndctl.
This patch-set combined with corresponding ndctl and libndctl changes proposed at Ref[3] should enable user to fetch PAPR compliant NVDIMMs using following command: # ndctl list -D --stats [ { "dev":"nmem0", "stats":{ "Controller Reset Count":2, "Controller Reset Elapsed Time":603331, "Power-on Seconds":603931, "Life Remaining":"100%", "Critical Resource Utilization":"0%", "Host Load Count":5781028, "Host Store Count":8966800, "Host Load Duration":975895365, "Host Store Duration":716230690, "Media Read Count":0, "Media Write Count":6313, "Media Read Duration":0, "Media Write Duration":9679615, "Cache Read Hit Count":5781028, "Cache Write Hit Count":8442479, "Fast Write Count":8969912 } } ] The patchset is dependent on existing patch-set "[PATCH v7 0/5] powerpc/papr_scm: Add support for reporting nvdimm health" available at Ref[2] that adds support for reporting PAPR compliant NVDIMMs in 'papr_scm' kernel module. Structure of the patch-set ========================== The patch-set starts with implementing functionality in papr_scm module to issue H_SCM_PERFORMANCE_STATS hcall, fetch & parse dimm performance stats and exposing them as a PAPR specific libnvdimm attribute named 'perf_stats' Patch-2 introduces a new PDSM named FETCH_PERF_STATS that can be issued by libndctl asking papr_scm to issue the H_SCM_PERFORMANCE_STATS hcall using helpers introduced earlier and storing the results in a dimm specific perf-stats-buffer. Patch-3 introduces a new PDSM named READ_PERF_STATS that can be issued by libndctl to read the perf-stats-buffer in an incremental manner to workaround the 256-bytes envelop limitation of libnvdimm. Finally Patch-4 introduces a new PDSM named GET_PERF_STAT that can be issued by libndctl to read values of a specific NVDIMM performance stat like "Life Remaining". References ========== [1] Documentation/powerpc/papr_hcals.rst [2] https://lore.kernel.org/linux-nvdimm/20200508104922.72565-1-vaib...@linux.ibm.com/ [3] https://github.com/vaibhav92/ndctl/tree/papr_scm_stats_v1 Vaibhav Jain (4): powerpc/papr_scm: Fetch nvdimm performance stats from PHYP powerpc/papr_scm: Add support for PAPR_SCM_PDSM_FETCH_PERF_STATS powerpc/papr_scm: Implement support for PAPR_SCM_PDSM_READ_PERF_STATS powerpc/papr_scm: Add support for PDSM GET_PERF_STAT Documentation/ABI/testing/sysfs-bus-papr-scm | 27 ++ arch/powerpc/include/uapi/asm/papr_scm_pdsm.h | 60 +++ arch/powerpc/platforms/pseries/papr_scm.c | 391 ++++++++++++++++++ 3 files changed, 478 insertions(+) -- 2.26.2