mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-16 17:43:56 +08:00
de21e1377c
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.pdf Signed-off-by: Vaibhav Jain <vaibhav@linux.ibm.com> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20210624080621.252038-1-vaibhav@linux.ibm.com |
||
---|---|---|
.. | ||
cmm.c | ||
dlpar.c | ||
dtl.c | ||
eeh_pseries.c | ||
event_sources.c | ||
firmware.c | ||
hotplug-cpu.c | ||
hotplug-memory.c | ||
hvCall_inst.c | ||
hvCall.S | ||
hvconsole.c | ||
hvcserver.c | ||
ibmebus.c | ||
io_event_irq.c | ||
iommu.c | ||
Kconfig | ||
kexec.c | ||
lpar.c | ||
lparcfg.c | ||
Makefile | ||
mobility.c | ||
msi.c | ||
nvram.c | ||
of_helpers.c | ||
of_helpers.h | ||
papr_scm.c | ||
pci_dlpar.c | ||
pci.c | ||
pmem.c | ||
power.c | ||
pseries_energy.c | ||
pseries.h | ||
ras.c | ||
reconfig.c | ||
rng.c | ||
rtas-fadump.c | ||
rtas-fadump.h | ||
scanlog.c | ||
setup.c | ||
smp.c | ||
suspend.c | ||
svm.c | ||
vas.c | ||
vas.h | ||
vio.c | ||
vphn.c |