Message ID | 20200420070711.223545-1-vaibhav@linux.ibm.com (mailing list archive) |
---|---|
Headers | show |
Series | powerpc/papr_scm: Add support for reporting nvdimm health | expand |
Vaibhav Jain <vaibhav@linux.ibm.com> writes: > The PAPR standard[1][3] provides mechanisms to query the health and > performance stats of an NVDIMM via various hcalls as described in > Ref[2]. Until now these stats were never available nor exposed to the > user-space tools like 'ndctl'. This is partly due to PAPR platform not > having support for ACPI and NFIT. Hence 'ndctl' is unable to query and > report the dimm health status and a user had no way to determine the > current health status of a NDVIMM. > > To overcome this limitation, this patch-set updates papr_scm kernel > module to query and fetch nvdimm health stats using hcalls described > in Ref[2]. This health and performance stats are then exposed to > userspace via syfs and PAPR-nvDimm-Specific-Methods(PDSM) issued by > libndctl. > > These changes coupled with proposed ndtcl changes located at Ref[4] > should provide a way for the user to retrieve NVDIMM health status > using ndtcl. > > Below is a sample output using proposed kernel + ndctl for PAPR NVDIMM > in a emulation environment: > > # ndctl list -DH > [ > { > "dev":"nmem0", > "health":{ > "health_state":"fatal", > "shutdown_state":"dirty" > } > } > ] > > Dimm health report output on a pseries guest lpar with vPMEM or HMS > based nvdimms that are in perfectly healthy conditions: > > # ndctl list -d nmem0 -H > [ > { > "dev":"nmem0", > "health":{ > "health_state":"ok", > "shutdown_state":"clean" > } > } > ] > > PAPR nvDimm-Specific-Methods(PDSM) > ================================== > > PDSM requests are issued by vendor specific code in libndctl to > execute certain operations or fetch information from NVDIMMS. PDSMs > requests can be sent to papr_scm module via libndctl(userspace) and > libnvdimm (kernel) using the ND_CMD_CALL ioctl command which can be > handled in the dimm control function papr_scm_ndctl(). Current > patchset proposes a single PDSM to retrieve NVDIMM health, defined in > the newly introduced uapi header named 'papr_scm_pdsm.h'. Support for > more PDSMs will be added in future. > > Structure of the patch-set > ========================== > > The patchset starts with implementing support for fetching nvdimm health > information from PHYP and partially exposing it to user-space via a nvdimm > sysfs flag. > > Second & Third patches deal with implementing support for servicing PDSM > commands in papr_scm module. > > Finally the Fourth patch implements support for servicing PDSM > 'PAPR_SCM_PDSM_HEALTH' that returns the nvdimm health information to > libndctl. You can add to the series. Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> -aneesh