• Vaibhav Jain's avatar
    powerpc/papr_scm: Add support for reporting dirty-shutdown-count · de21e137
    Vaibhav Jain authored
    Persistent memory devices like NVDIMMs can loose cached writes in case
    something prevents flush on power-fail. Such situations are termed as
    dirty shutdown and are exposed to applications as
    last-shutdown-state (LSS) flag and a dirty-shutdown-counter(DSC) as
    described at [1]. The latter being useful in conditions where multiple
    applications want to detect a dirty shutdown event without racing with
    one another.
    
    PAPR-NVDIMMs have so far only exposed LSS style flags to indicate a
    dirty-shutdown-state. This patch further adds support for DSC via the
    "ibm,persistence-failed-count" device tree property of an NVDIMM. This
    property is a monotonic increasing 64-bit counter thats an indication
    of number of times an NVDIMM has encountered a dirty-shutdown event
    causing persistence loss.
    
    Since this value is not expected to change after system-boot hence
    papr_scm reads & caches its value during NVDIMM probe and exposes it
    as a PAPR sysfs attributed named 'dirty_shutdown' to match the name of
    similarly named NFIT sysfs attribute. Also this value is available to
    libnvdimm via PAPR_PDSM_HEALTH payload. 'struct nd_papr_pdsm_health'
    has been extended to add a new member called 'dimm_dsc' presence of
    which is indicated by the newly introduced PDSM_DIMM_DSC_VALID flag.
    
    References:
    [1] https://pmem.io/documents/Dirty_Shutdown_Handling-V1.0.pdfSigned-off-by: default avatarVaibhav Jain <vaibhav@linux.ibm.com>
    Reviewed-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20210624080621.252038-1-vaibhav@linux.ibm.com
    de21e137
papr_scm.c 34.2 KB